Projects
Kolab:Winterfell
roundcubemail
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 201
View file
roundcubemail.spec
Changed
@@ -48,13 +48,13 @@ %global logdir /var/log/roundcubemail %global tmpdir /var/lib/roundcubemail -%global rc_version 1.4.3.6 +%global rc_version 1.4.3.29 #%%global rc_rel_suffix rc2.12 %global dot_rel_suffix %{?rc_rel_suffix:.%{rc_rel_suffix}} %global dash_rel_suffix %{?rc_rel_suffix:-%{rc_rel_suffix}} Name: roundcubemail -Version: 1.4.3.6 +Version: 1.4.3.29 Release: 1%{?dot_rel_suffix}%{?dist} @@ -3450,6 +3450,9 @@ %defattr(-,root,root,-) %changelog +* Tue Apr 14 2020 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 1.4.3.29-1 +- Check in 29 revisions ahead of upstream 1.4.3 release + * Mon Mar 2 2020 Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> - 1.4.3.6-1 - Check in 6 revisions ahead of upstream 1.4.3 release
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +roundcubemail (1.4.3.29-0~kolab1) unstable; urgency=low + + * Check in 29 revisions ahead of upstream 1.4.3 release + + -- Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Tue, 14 Apr 2020 11:11:11 +0200 + roundcubemail (1.4.3.6-0~kolab1) unstable; urgency=low * Check in 6 revisions ahead of upstream 1.4.3 release
View file
roundcubemail-1.4.3.6.tar.gz/CHANGELOG -> roundcubemail-1.4.3.29.tar.gz/CHANGELOG
Changed
@@ -5,7 +5,21 @@ - Fix identity selection on reply when both sender and recipient addresses are included in identities (#7211) - Elastic: Fix text selection with Shift+PageUp and Shift+PageDown in plain text editor when using Chrome (#7230) - Elastic: Fix recipient input bug when using click to select a contact from autocomplete list (#7231) +- Elastic: Fix color of a folder with recent messages (#7281) +- Elastic: Restrict logo size in print view (#7275) - Fix invalid Content-Type for messages with only html part and inline images - Mail_Mime-1.10.7 (#7261) +- Fix missing contact display name in QR Code data (#7257) +- Fix so button label in Select image/media dialogs is "Close" not "Cancel" (#7246) +- Fix regression in testing database schema on MSSQL (#7227) +- Fix cursor position after inserting a group to a recipient input using autocompletion (#7267) +- Fix string literals handling in IMAP STATUS (and various other) responses (#7290) +- Fix bug where multiple images in a message were replaced by the first one on forward/reply/edit (#7293) +- Fix handling keyservers configured with protocol prefix (#7295) +- Markasjunk: Fix marking as spam/ham on moving messages with Move menu (#7189) +- Markasjunk: Fix bug where moving to Junk was failing on messages selected with Select > All (#7206) +- Fix so imap error message is displayed to the user on folder create/update (#7245) +- Fix bug where a special folder couldn't be created if a special-use flag is not supported (#7147) +- Mailvelope: Fix bug where recipients with name were not handled properly in mail compose (#7312) RELEASE 1.4.3 -------------
View file
roundcubemail-1.4.3.6.tar.gz/installer/test.php -> roundcubemail-1.4.3.29.tar.gz/installer/test.php
Changed
@@ -190,7 +190,9 @@ // more database tests if ($db_working) { // Using transactions to workaround SQLite bug (#7064) - $DB->startTransaction(); + if ($DB->db_provider == 'sqlite') { + $DB->startTransaction(); + } // write test $insert_id = md5(uniqid()); @@ -208,7 +210,9 @@ echo '<br />'; // Transaction end - $DB->rollbackTransaction(); + if ($DB->db_provider == 'sqlite') { + $DB->rollbackTransaction(); + } // check timezone settings $tz_db = 'SELECT ' . $DB->unixtimestamp($DB->now()) . ' AS tz_db';
View file
roundcubemail-1.4.3.6.tar.gz/plugins/markasjunk/markasjunk.php -> roundcubemail-1.4.3.29.tar.gz/plugins/markasjunk/markasjunk.php
Changed
@@ -42,6 +42,7 @@ 'JUNK' => 'Junk', 'NONJUNK' => 'NonJunk' ); + private $driver; public function init() @@ -123,10 +124,10 @@ $this->rcube->output->set_env('markasjunk_move_ham', $this->rcube->config->get('markasjunk_move_ham', false)); $this->rcube->output->set_env('markasjunk_permanently_remove', $this->rcube->config->get('markasjunk_permanently_remove', false)); $this->rcube->output->set_env('markasjunk_spam_only', $this->rcube->config->get('markasjunk_spam_only', false)); - - // check for init method from driver - $this->_call_driver('init'); } + + // init learning driver + $this->_init_driver(); } public function mark_message() @@ -134,11 +135,20 @@ $this->add_texts('localization'); $is_spam = $this->rcube->action == 'plugin.markasjunk.junk' ? true : false; - $messageset = rcmail::get_uids(null, null, $multifolder, rcube_utils::INPUT_POST); + $uids = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST); $mbox_name = rcube_utils::get_input_value('_mbox', rcube_utils::INPUT_POST); + $messageset = rcmail::get_uids($uids, $mbox_name, $multifolder); $dest_mbox = $is_spam ? $this->spam_mbox : $this->ham_mbox; - $result = $is_spam ? $this->_spam($messageset, $dest_mbox) : $this->_ham($messageset, $dest_mbox); + // special case when select all is used, uid is '*', and not in multi folder mode and we are using a driver + // rcmail::get_uids does not handle this + if ($uids == '*' && !$multifolder && is_object($this->driver)) { + $storage = $this->rcube->get_storage(); + $result_index = $storage->index($mbox_name); + $messageset = array($mbox_name => $result_index->get()); + } + + $result = $is_spam ? $this->_spam($messageset, $dest_mbox) : $this->_ham($messageset, $dest_mbox); if ($result) { if ($dest_mbox && ($mbox_name !== $dest_mbox || $multifolder)) { $this->rcube->output->command('markasjunk_move', $dest_mbox, $this->_messageset_to_uids($messageset, $multifolder)); @@ -224,50 +234,19 @@ private function _call_driver($action, &$uids = null, $source_mbox = null, $dest_mbox = null) { - $driver_name = $this->rcube->config->get('markasjunk_learning_driver'); - - if (empty($driver_name)) { + // already initialized + if (!is_object($this->driver)) { return true; } - $driver = $this->home . "/drivers/$driver_name.php"; - $class = "markasjunk_$driver_name"; - - if (!is_readable($driver)) { - rcube::raise_error(array( - 'code' => 600, - 'type' => 'php', - 'file' => __FILE__, - 'line' => __LINE__, - 'message' => "markasjunk plugin: Unable to open driver file $driver" - ), true, false); - } - - include_once $driver; - - if (!class_exists($class, false) || !method_exists($class, 'spam') || !method_exists($class, 'ham')) { - rcube::raise_error(array( - 'code' => 600, - 'type' => 'php', - 'file' => __FILE__, - 'line' => __LINE__, - 'message' => "markasjunk plugin: Broken driver: $driver" - ), true, false); - } - - // call the relevant function from the driver - $object = new $class(); if ($action == 'spam') { - $object->spam($uids, $source_mbox, $dest_mbox); + $this->driver->spam($uids, $source_mbox, $dest_mbox); } elseif ($action == 'ham') { - $object->ham($uids, $source_mbox, $dest_mbox); - } - elseif ($action == 'init' && method_exists($object, 'init')) { // method_exists check here for backwards compatibility - $object->init(); + $this->driver->ham($uids, $source_mbox, $dest_mbox); } - return $object->is_error ? false : true; + return $this->driver->is_error ? false : true; } private function _messageset_to_uids($messageset, $multifolder) @@ -275,8 +254,10 @@ $a_uids = array(); foreach ($messageset as $mbox => $uids) { - foreach ($uids as $uid) { - $a_uids[] = $multifolder ? $uid . '-' . $mbox : $uid; + if (is_array($uids)) { + foreach ($uids as $uid) { + $a_uids[] = $multifolder ? $uid . '-' . $mbox : $uid; + } } } @@ -318,4 +299,46 @@ $this->add_hook('storage_init', array($this, 'set_flags')); } } + + private function _init_driver() + { + $driver_name = $this->rcube->config->get('markasjunk_learning_driver'); + + if (empty($driver_name)) { + return; + } + + $driver = $this->home . "/drivers/$driver_name.php"; + $class = "markasjunk_$driver_name"; + + if (!is_readable($driver)) { + rcube::raise_error(array( + 'code' => 600, + 'type' => 'php', + 'file' => __FILE__, + 'line' => __LINE__, + 'message' => "markasjunk plugin: Unable to open driver file $driver" + ), true, false); + } + + include_once $driver; + + if (!class_exists($class, false) || !method_exists($class, 'spam') || !method_exists($class, 'ham')) { + rcube::raise_error(array( + 'code' => 600, + 'type' => 'php', + 'file' => __FILE__, + 'line' => __LINE__, + 'message' => "markasjunk plugin: Broken driver: $driver" + ), true, false); + } + + // call the relevant function from the driver + $this->driver = new $class(); + + // method_exists check here for backwards compatibility + if (method_exists($this->driver, 'init')) { + $this->driver->init(); + } + } }
View file
roundcubemail-1.4.3.6.tar.gz/plugins/zipdownload/zipdownload.js -> roundcubemail-1.4.3.29.tar.gz/plugins/zipdownload/zipdownload.js
Changed
@@ -26,8 +26,6 @@ var selected = list.get_selection().length; rcmail.enable_command('download', selected > 0); - rcmail.enable_command('download-eml', selected == 1); - rcmail.enable_command('download-mbox', 'download-maildir', selected > 1); }); // hook before default download action @@ -94,6 +92,11 @@ // display download options menu function rcmail_zipdownload_menu(e) { + // Menu option status + var selected = rcmail.message_list.get_selection().length; + rcmail.enable_command('download-eml', selected == 1); + rcmail.enable_command('download-mbox', 'download-maildir', selected > 1); + // show (sub)menu for download selection rcmail.command('menu-open', 'zipdownload-menu', e && e.target ? e.target : rcmail.env.download_link, e);
View file
roundcubemail-1.4.3.6.tar.gz/program/include/rcmail.php -> roundcubemail-1.4.3.29.tar.gz/program/include/rcmail.php
Changed
@@ -2098,7 +2098,7 @@ } } - $this->output->add_label('selectimage', 'addimage', 'selectmedia', 'addmedia'); + $this->output->add_label('selectimage', 'addimage', 'selectmedia', 'addmedia', 'close'); $this->output->set_env('editor_config', $config); if ($path = $this->config->get('media_browser_css_location', 'program/resources/tinymce/browser.css')) {
View file
roundcubemail-1.4.3.6.tar.gz/program/js/app.js -> roundcubemail-1.4.3.29.tar.gz/program/js/app.js
Changed
@@ -735,7 +735,7 @@ /*********************************************************/ // execute a specific command on the web client - this.command = function(command, props, obj, event) + this.command = function(command, props, obj, event, allow_disabled) { var ret; @@ -753,7 +753,7 @@ } // command not supported or allowed - if (!this.commands[command]) { + if (!allow_disabled && !this.commands[command]) { // pass command to parent window if (this.is_framed()) parent.rcmail.command(command, props); @@ -3198,12 +3198,13 @@ this.copy_messages = function(mbox, event, uids) { if (mbox && typeof mbox === 'object') { + if (mbox.uids) uids = mbox.uids; mbox = mbox.id; } else if (!mbox) { uids = this.env.uid ? [this.env.uid] : this.message_list.get_selection(); - return this.folder_selector(event, function(folder) { - ref.copy_messages(folder, null, uids); + return this.folder_selector(event, function(folder, obj) { + ref.command('copy', {id: folder, uids: uids}, obj, event, true); }); } @@ -3225,12 +3226,13 @@ this.move_messages = function(mbox, event, uids) { if (mbox && typeof mbox === 'object') { + if (mbox.uids) uids = mbox.uids; mbox = mbox.id; } else if (!mbox) { uids = this.env.uid ? [this.env.uid] : this.message_list.get_selection(); - return this.folder_selector(event, function(folder) { - ref.move_messages(folder, null, uids); + return this.folder_selector(event, function(folder, obj) { + ref.command('move', {id: folder, uids: uids}, obj, event, true); }); } @@ -3905,7 +3907,7 @@ $.each(['to', 'cc', 'bcc'], function(i,field) { var pos, rcpt, val = $.trim($('[name="_' + field + '"]').val()); while (val.length && rcube_check_email(val, true)) { - rcpt = RegExp.$2; + rcpt = RegExp.$2.replace(/^<+/, '').replace(/>+$/, ''); recipients.push(rcpt); val = val.substr(val.indexOf(rcpt) + rcpt.length + 1).replace(/^\s*,\s*/, ''); } @@ -6078,7 +6080,7 @@ input.value = pre + to + end; // set caret to insert pos - this.set_caret_pos(input, p + to.length); + this.set_caret_pos(input, cpos + to.length - from.length); // run onchange action on the element $(input).trigger('change', [true]);
View file
roundcubemail-1.4.3.6.tar.gz/program/js/editor.js -> roundcubemail-1.4.3.29.tar.gz/program/js/editor.js
Changed
@@ -664,7 +664,7 @@ title: rcmail.get_label('select' + type), width: 500, html: '<div id="image-selector" class="image-selector file-upload"><ul id="image-selector-list" class="attachmentslist"></ul></div>', - buttons: [{text: 'Cancel', onclick: function() { ref.file_browser_close(); }}] + buttons: [{text: rcmail.get_label('close'), onclick: function() { ref.file_browser_close(); }}] }); rcmail.env.file_browser_field = field_name;
View file
roundcubemail-1.4.3.6.tar.gz/program/lib/Roundcube/rcube_config.php -> roundcubemail-1.4.3.29.tar.gz/program/lib/Roundcube/rcube_config.php
Changed
@@ -592,7 +592,7 @@ $list = (array) $this->prop['keyservers']; foreach ($list as $idx => $host) { - if (!preg_match('|^[a-z]://|', $host)) { + if (!preg_match('|^[a-z]+://|', $host)) { $host = "https://$host"; }
View file
roundcubemail-1.4.3.6.tar.gz/program/lib/Roundcube/rcube_imap.php -> roundcubemail-1.4.3.29.tar.gz/program/lib/Roundcube/rcube_imap.php
Changed
@@ -1900,8 +1900,11 @@ } // Check internal cache - if (!empty($this->icache['message'])) { - if (($headers = $this->icache['message']) && $headers->uid == $uid) { + if (!empty($this->icache['message']) && ($headers = $this->icache['message'])) { + // Make sure the folder and UID is what we expect. + // In case when the same process works with folders that are personal + // and shared two folders can contain the same UIDs. + if ($headers->uid == $uid && $headers->folder == $folder) { return $headers; } } @@ -3293,6 +3296,12 @@ $result = $this->conn->createFolder($folder, $type ? array("\\" . ucfirst($type)) : null); + // Folder creation may fail when specific special-use flag is not supported. + // Try to create it anyway with no flag specified (#7147) + if (!$result && $type) { + $result = $this->conn->createFolder($folder); + } + // try to subscribe it if ($result) { // clear cache
View file
roundcubemail-1.4.3.6.tar.gz/program/lib/Roundcube/rcube_imap_generic.php -> roundcubemail-1.4.3.29.tar.gz/program/lib/Roundcube/rcube_imap_generic.php
Changed
@@ -221,6 +221,38 @@ } /** + * Reads a line of data from the connection stream inluding all + * string continuation literals. + * + * @param int $size Buffer size + * + * @return string Line of text response + */ + protected function readFullLine($size = 1024) + { + $line = $this->readLine($size); + + // include all string literels untile the real end of "line" + while (preg_match('/\{([0-9]+)\}\r\n$/', $line, $m)) { + $bytes = $m[1]; + $out = ''; + + while (strlen($out) < $bytes) { + $out = $this->readBytes($bytes); + if ($out === null) { + break; + } + + $line .= $out; + } + + $line .= $this->readLine($size); + } + + return $line; + } + + /** * Reads more data from the connection stream when provided * data contain string literal * @@ -2397,7 +2429,7 @@ } do { - $line = $this->readLine(4096); + $line = $this->readFullLine(4096); if (!$line) { break; @@ -2421,27 +2453,6 @@ $line = substr($line, strlen($m[0]) + 2); $ln = 0; - // get complete entry - while (preg_match('/\{([0-9]+)\}\r\n$/', $line, $m)) { - $bytes = $m[1]; - $out = ''; - - while (strlen($out) < $bytes) { - $out = $this->readBytes($bytes); - if ($out === null) { - break; - } - $line .= $out; - } - - $str = $this->readLine(4096); - if ($str === false) { - break; - } - - $line .= $str; - } - // Tokenize response and assign to object properties while (list($name, $value) = $this->tokenizeResponse($line, 2)) { if ($name == 'UID') { @@ -3721,10 +3732,9 @@ // Parse response do { - $line = $this->readLine(4096); + $line = $this->readFullLine(4096); if ($response !== null) { - // TODO: Better string literals handling with filter if (!$filter || preg_match($filter, $line)) { $response .= $line; }
View file
roundcubemail-1.4.3.6.tar.gz/program/steps/addressbook/qrcode.inc -> roundcubemail-1.4.3.29.tar.gz/program/steps/addressbook/qrcode.inc
Changed
@@ -44,8 +44,8 @@ $vcard = new rcube_vcard(); // QR code input is limited, use only common fields - $fields = array('firstname', 'surname', 'middlename', 'nickname', 'organization', - 'prefix', 'suffix', 'phone', 'email', 'jobtitle'); + $fields = array('name', 'firstname', 'surname', 'middlename', 'nickname', + 'organization', 'phone', 'email', 'jobtitle', 'prefix', 'suffix'); foreach ($contact as $field => $value) { list($field, $section) = explode(':', $field, 2);
View file
roundcubemail-1.4.3.6.tar.gz/program/steps/mail/compose.inc -> roundcubemail-1.4.3.29.tar.gz/program/steps/mail/compose.inc
Changed
@@ -1042,7 +1042,7 @@ } } - $url = sprintf('RCMAP%s', md5($message->folder . '/' . $message->uid)); + $url = sprintf('RCMAP%s', md5($message->folder . '/' . $message->uid . '/' . $pid)); $idx = $part->content_id ? ('cid:' . $part->content_id) : $part->content_location; $map[$idx] = $url;
View file
roundcubemail-1.4.3.6.tar.gz/program/steps/settings/save_folder.inc -> roundcubemail-1.4.3.29.tar.gz/program/steps/settings/save_folder.inc
Changed
@@ -135,7 +135,12 @@ } else { // show error message - $OUTPUT->show_message($plugin['message'] ?: 'errorsaving', 'error', null, false); + if (!empty($plugin['message'])) { + $OUTPUT->show_message($plugin['message'], 'error', null, false); + } + else { + $RCMAIL->display_server_error('errorsaving'); + } } } // update a mailbox @@ -198,7 +203,12 @@ } else { // show error message - $OUTPUT->show_message($plugin['message'] ?: 'errorsaving', 'error', null, false); + if (!empty($plugin['message'])) { + $OUTPUT->show_message($plugin['message'], 'error', null, false); + } + else { + $RCMAIL->display_server_error('errorsaving'); + } } }
View file
roundcubemail-1.4.3.6.tar.gz/skins/elastic/styles/colors.less -> roundcubemail-1.4.3.29.tar.gz/skins/elastic/styles/colors.less
Changed
@@ -85,9 +85,9 @@ @color-list-border: @color-black-shade-bg; @color-list-badge: #fff; @color-list-badge-background: @color-main; -@color-list-recent: blue; +@color-list-recent: darken(@color-main, 20%); @color-list-recent-badge: #fff; -@color-list-recent-badge-background: @color-list-recent; +@color-list-recent-badge-background: @color-main; @color-list-pagenav: @color-black-shade-text; @color-list-icon: fadeout(@color-list-secondary, 25%);
View file
roundcubemail-1.4.3.6.tar.gz/skins/elastic/styles/print.less -> roundcubemail-1.4.3.29.tar.gz/skins/elastic/styles/print.less
Changed
@@ -19,6 +19,10 @@ #print-layout { margin: 1rem; + #logo { + max-height: 80px; + } + // Overwrites for mail message printouts .image-attachment {
View file
roundcubemail-1.4.3.6.tar.gz/skins/elastic/styles/widgets/editor.less -> roundcubemail-1.4.3.29.tar.gz/skins/elastic/styles/widgets/editor.less
Changed
@@ -88,11 +88,12 @@ right: 0; top: 0; position: absolute; - height: (@layout-header-height - .7rem); + height: (@layout-header-height - .75rem); width: 1.25em; - margin: .25rem; + margin: 0 .25rem; padding: .1rem .75rem; cursor: pointer; + outline: 0; &:before { &:extend(.font-icon-class);
View file
roundcubemail-1.4.3.6.tar.gz/skins/elastic/styles/widgets/lists.less -> roundcubemail-1.4.3.29.tar.gz/skins/elastic/styles/widgets/lists.less
Changed
@@ -478,10 +478,6 @@ } } - &.recent { - color: @color-list-recent; - } - .unreadcount { position: absolute; top: 0; @@ -502,9 +498,15 @@ } } - &.recent > .unreadcount { - background: @color-list-recent-badge-background; - color: @color-list-recent-badge; + &.recent { + & > a { + color: @color-list-recent; + + & > .unreadcount { + background: @color-list-recent-badge-background; + color: @color-list-recent-badge; + } + } } &.root {
View file
roundcubemail-1.4.3.6.tar.gz/autogen.sh
Deleted
@@ -1,15 +0,0 @@ -#!/bin/bash - -git clean -d -f -x - -bin/install-jsdeps.sh -bin/install-jsdeps.sh - -pushd .. - -rm -rf roundcubemail-$1/ -cp -a roundcubemail.git roundcubemail-$1/ -rm -rf roundcubemail-$1/.git/ - -tar czvf roundcubemail-$1.tar.gz roundcubemail-$1 -
View file
roundcubemail.dsc
Changed
@@ -2,7 +2,7 @@ Source: roundcubemail Binary: roundcubemail Architecture: all -Version: 1:1.4.3.6-0~kolab1 +Version: 1:1.4.3.29-0~kolab1 Maintainer: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Uploaders: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Homepage: http://www.roundcube.net/ @@ -14,5 +14,5 @@ roundcubemail deb web extra roundcubemail-core deb web extra Files: - 00000000000000000000000000000000 0 roundcubemail-1.4.3.6.tar.gz + 00000000000000000000000000000000 0 roundcubemail-1.4.3.29.tar.gz 00000000000000000000000000000000 0 debian.tar.gz
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.