diff --git a/NEWS b/NEWS
index 5cd72a29e..208234346 100644
--- a/NEWS
+++ b/NEWS
@@ -1,10 +1,10 @@
-2.3.24 (2018-XX-XX)
+2.3.24 (2019-XX-XX)
-------------------
Bug fixes
- sogo-tool manage-acl not working on v2 (#4292)
- [web] restored mail threads state of inbox on initial page load
-
+ - [web] fixed and improved messages list in threads mode
2.3.23 (2017-10-18)
-------------------
diff --git a/UI/MailerUI/UIxMailListActions.m b/UI/MailerUI/UIxMailListActions.m
index 5c299bfd6..738226158 100644
--- a/UI/MailerUI/UIxMailListActions.m
+++ b/UI/MailerUI/UIxMailListActions.m
@@ -756,7 +756,7 @@
// Attachment
if ([self hasMessageAttachment])
- [msg addObject: [NSString stringWithFormat: @"
", [self urlForResourceFilename: @"title_attachment_14x14.png"]]];
+ [msg addObject: [NSString stringWithFormat: @"
", [self urlForResourceFilename: @"title_attachment_14x14.png"]]];
else
[msg addObject: @""];
@@ -786,7 +786,7 @@
else
msgIconStatus = @"unread.png";
- [msg addObject: [NSString stringWithFormat: @"
",
+ [msg addObject: [NSString stringWithFormat: @"
",
[self urlForResourceFilename: msgIconStatus],
[self labelForKey: @"Mark Unread"],
[self labelForKey: @"Mark Read"],
diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js
index aae488cbb..05cd5d5e8 100644
--- a/UI/WebServerResources/MailerUI.js
+++ b/UI/WebServerResources/MailerUI.js
@@ -239,7 +239,7 @@ function mailListToggleMessageThread(row, cell) {
else {
row.removeClassName('openedThread');
row.addClassName('closedThread');
- var img = createElement("img", null, null, { src: ResourcesURL + '/arrow-right.png' });
+ var img = createElement("img", null, 'messageThread', { src: ResourcesURL + '/arrow-right.png' });
cell.insertBefore(img, cell.firstChild);
}
while ((row = row.next()) && row.hasClassName('thread')) {
@@ -1052,6 +1052,7 @@ function messageListCallback(row, data, isNew) {
}
else {
row.addClassName('openedThread');
+ displayThreadElement = false;
}
}
}
@@ -1072,7 +1073,9 @@ function messageListCallback(row, data, isNew) {
for (var j = 0; j < cells.length; j++) {
var cell = cells[j];
var cellType = Mailer.columnsOrder[j];
- if (data[cellType]) cell.innerHTML = data[cellType];
+ if (data[cellType]) {
+ if (cell.innerHTML != data[cellType]) cell.innerHTML = data[cellType];
+ }
else cell.innerHTML = ' ';
}
}