mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Bugfix: Message attachments should be observable or else KnockoutJS is not updating
This commit is contained in:
parent
0f56c7d28f
commit
9241726ffe
2 changed files with 8 additions and 8 deletions
|
|
@ -74,7 +74,7 @@ class MessageModel extends AbstractModel {
|
||||||
|
|
||||||
this.isHtml = ko.observable(false);
|
this.isHtml = ko.observable(false);
|
||||||
this.hasImages = ko.observable(false);
|
this.hasImages = ko.observable(false);
|
||||||
this.attachments = new AttachmentCollectionModel;
|
this.attachments = ko.observable(new AttachmentCollectionModel);
|
||||||
|
|
||||||
this.isPgpSigned = ko.observable(false);
|
this.isPgpSigned = ko.observable(false);
|
||||||
this.isPgpEncrypted = ko.observable(false);
|
this.isPgpEncrypted = ko.observable(false);
|
||||||
|
|
@ -159,7 +159,7 @@ class MessageModel extends AbstractModel {
|
||||||
|
|
||||||
this.isHtml(false);
|
this.isHtml(false);
|
||||||
this.hasImages(false);
|
this.hasImages(false);
|
||||||
this.attachments = new AttachmentCollectionModel;
|
this.attachments(new AttachmentCollectionModel);
|
||||||
|
|
||||||
this.isPgpSigned(false);
|
this.isPgpSigned(false);
|
||||||
this.isPgpEncrypted(false);
|
this.isPgpEncrypted(false);
|
||||||
|
|
@ -300,7 +300,7 @@ class MessageModel extends AbstractModel {
|
||||||
this.attachmentsSpecData(isArray(json.AttachmentsSpecData) ? json.AttachmentsSpecData : []);
|
this.attachmentsSpecData(isArray(json.AttachmentsSpecData) ? json.AttachmentsSpecData : []);
|
||||||
|
|
||||||
this.foundedCIDs = isArray(json.FoundedCIDs) ? json.FoundedCIDs : [];
|
this.foundedCIDs = isArray(json.FoundedCIDs) ? json.FoundedCIDs : [];
|
||||||
this.attachments = AttachmentCollectionModel.reviveFromJson(json.Attachments, this.foundedCIDs);
|
this.attachments(AttachmentCollectionModel.reviveFromJson(json.Attachments, this.foundedCIDs));
|
||||||
|
|
||||||
this.readReceipt(json.ReadReceipt || '');
|
this.readReceipt(json.ReadReceipt || '');
|
||||||
|
|
||||||
|
|
@ -657,7 +657,7 @@ class MessageModel extends AbstractModel {
|
||||||
showInternalImages() {
|
showInternalImages() {
|
||||||
const body = this.body;
|
const body = this.body;
|
||||||
if (body && !body.rlInitInternalImages) {
|
if (body && !body.rlInitInternalImages) {
|
||||||
const findAttachmentByCid = cid => this.attachments.findByCid(cid);
|
const findAttachmentByCid = cid => this.attachments().findByCid(cid);
|
||||||
|
|
||||||
body.rlInitInternalImages = true;
|
body.rlInitInternalImages = true;
|
||||||
|
|
||||||
|
|
@ -669,7 +669,7 @@ class MessageModel extends AbstractModel {
|
||||||
el.src = attachment.linkPreview();
|
el.src = attachment.linkPreview();
|
||||||
}
|
}
|
||||||
} else if (data.xSrcLocation) {
|
} else if (data.xSrcLocation) {
|
||||||
const attachment = this.attachments.find(item => data.xSrcLocation === item.contentLocation)
|
const attachment = this.attachments().find(item => data.xSrcLocation === item.contentLocation)
|
||||||
|| findAttachmentByCid(data.xSrcLocation);
|
|| findAttachmentByCid(data.xSrcLocation);
|
||||||
if (attachment && attachment.download) {
|
if (attachment && attachment.download) {
|
||||||
el.loading = 'lazy';
|
el.loading = 'lazy';
|
||||||
|
|
|
||||||
|
|
@ -341,9 +341,9 @@
|
||||||
|
|
||||||
<span class="i18n text" data-i18n="MESSAGE/BUTTON_NOTIFY_READ_RECEIPT"></span>
|
<span class="i18n text" data-i18n="MESSAGE/BUTTON_NOTIFY_READ_RECEIPT"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="attachmentsPlace" data-bind="visible: message() && message().attachments.hasVisible(),
|
<div class="attachmentsPlace" data-bind="visible: message() && message().attachments().hasVisible(),
|
||||||
css: {'selection-mode' : showAttachmnetControls, 'unselectedAttachmentsError': highlightUnselectedAttachments}">
|
css: {'selection-mode' : showAttachmnetControls, 'unselectedAttachmentsError': highlightUnselectedAttachments}">
|
||||||
<ul class="attachmentList" data-bind="foreach: message() ? message().attachments : []">
|
<ul class="attachmentList" data-bind="foreach: message() ? message().attachments() : []">
|
||||||
<li class="attachmentItem clearfix" draggable="true" data-tooltip-join="top"
|
<li class="attachmentItem clearfix" draggable="true" data-tooltip-join="top"
|
||||||
data-bind="visible: !isLinked, event: { 'dragstart': eventDragStart }, attr: { 'title': fileName }, css: {'checked': checked}">
|
data-bind="visible: !isLinked, event: { 'dragstart': eventDragStart }, attr: { 'title': fileName }, css: {'checked': checked}">
|
||||||
<div class="attachmentIconParent pull-left" data-bind="css: { 'hasPreview': hasPreview(), 'hasPreplay': hasPreplay(), 'isImage': isImage() }">
|
<div class="attachmentIconParent pull-left" data-bind="css: { 'hasPreview': hasPreview(), 'hasPreplay': hasPreplay(), 'isImage': isImage() }">
|
||||||
|
|
@ -393,7 +393,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="attachmentsControls"
|
<div class="attachmentsControls"
|
||||||
data-bind="visible: showAttachmnetControls() && message() && message().attachments.hasVisible()">
|
data-bind="visible: showAttachmnetControls() && message() && message().attachments().hasVisible()">
|
||||||
|
|
||||||
<span data-bind="visible: downloadAsZipAllowed">
|
<span data-bind="visible: downloadAsZipAllowed">
|
||||||
<i class="icon-remove iconcolor-red" data-bind="visible: downloadAsZipError"></i>
|
<i class="icon-remove iconcolor-red" data-bind="visible: downloadAsZipError"></i>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue