CHANGELOG | ●●●●● patch | view | raw | blame | history | |
program/js/list.js | ●●●●● patch | view | raw | blame | history | |
program/lib/Roundcube/rcube_message.php | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== - Fix HTML part detection for some specific message structures (#1488992) - Don't show fake address - phishing prevention (#1488981) - Fix forward as attachment bug with editormode != 1 (#1488991) - Fix LIMIT/OFFSET queries handling on MS SQL Server (#1488984) program/js/list.js
@@ -1143,7 +1143,7 @@ this.draglayer.html(''); // get subjects of selected messages var c, i, n, subject, obj; var i, n, obj; for (n=0; n<this.selection.length; n++) { // only show 12 lines if (n>12) { @@ -1152,37 +1152,26 @@ } if (obj = this.rows[this.selection[n]].obj) { subject = ''; for (c=0, i=0; i<obj.childNodes.length; i++) { for (i=0; i<obj.childNodes.length; i++) { if (obj.childNodes[i].nodeName == 'TD') { if (n == 0) this.drag_start_pos = $(obj.childNodes[i]).offset(); if (this.subject_col < 0 || (this.subject_col >= 0 && this.subject_col == c)) { var entry, node, tmp_node, nodes = obj.childNodes[i].childNodes; // find text node for (m=0; m<nodes.length; m++) { if ((tmp_node = obj.childNodes[i].childNodes[m]) && (tmp_node.nodeType == 3 || tmp_node.nodeName == 'A')) { node = tmp_node; break; } } if (this.subject_col < 0 || (this.subject_col >= 0 && this.subject_col == i)) { var subject = $(obj.childNodes[i]).text(); if (!node) if (!subject) break; subject = $(node).text(); // remove leading spaces subject = $.trim(subject); // truncate line to 50 characters subject = (subject.length > 50 ? subject.substring(0, 50) + '...' : subject); entry = $('<div>').text(subject); var entry = $('<div>').text(subject); this.draglayer.append(entry); break; } c++; } } } program/lib/Roundcube/rcube_message.php
@@ -210,18 +210,20 @@ if (!$recursive) { $level = explode('.', $part->mime_id); // Skip if level too deep or part has a file name if (count($level) > 2 || $part->filename) { // Skip if part is an attachment if ($this->is_attachment($part)) { continue; } // HTML part can be on the lower level, if not... if (count($level) > 1) { array_pop($level); // Check if the part belongs to higher-level's alternative/related while (array_pop($level) !== null) { if (!count($level)) { return true; } $parent = $this->mime_parts[join('.', $level)]; // ... parent isn't multipart/alternative or related if ($parent->mimetype != 'multipart/alternative' && $parent->mimetype != 'multipart/related') { continue; continue 2; } } }