fix(addressbook(js)): load selected cards prior to display mail editor

master
Francis Lachapelle 2021-09-21 14:42:05 -04:00
parent 9c493e004b
commit c6d6dc3e66
2 changed files with 23 additions and 3 deletions

View File

@ -850,8 +850,10 @@
* @param {promise} futureHeadersData - a promise of the metadata of some cards * @param {promise} futureHeadersData - a promise of the metadata of some cards
*/ */
AddressBook.prototype.$unwrapHeaders = function(futureHeadersData) { AddressBook.prototype.$unwrapHeaders = function(futureHeadersData) {
var _this = this; var _this = this,
deferred = AddressBook.$q.defer();
this.$futureHeadersData = deferred.promise;
futureHeadersData.then(function(data) { futureHeadersData.then(function(data) {
AddressBook.$timeout(function() { AddressBook.$timeout(function() {
var headers, j; var headers, j;
@ -867,8 +869,13 @@
} }
}); });
} }
deferred.resolve(_this.$cards);
}); });
}, function() {
deferred.reject();
}); });
return this.$futureHeadersData;
}; };
/** /**

View File

@ -380,6 +380,7 @@
}; };
this.newMessageWithSelectedCards = function($event, recipientsField) { this.newMessageWithSelectedCards = function($event, recipientsField) {
var selectedFolder = this.selectedFolder;
var selectedCards = _.filter(this.selectedFolder.$cards, function(card) { return card.selected; }); var selectedCards = _.filter(this.selectedFolder.$cards, function(card) { return card.selected; });
var promises = [], recipients = []; var promises = [], recipients = [];
@ -401,8 +402,20 @@
})); }));
} }
} }
else if (card.c_mail.length) { else if (card.$loaded == Card.STATUS.LOADED) {
recipients.push(card.$shortFormat()); if (card.c_mail) {
recipients.push(card.$shortFormat());
}
}
else if (selectedFolder.$loadCard(card)) {
promises.push(selectedFolder.$futureHeadersData.then(function() {
var i = selectedFolder.idsMap[card.id];
if (angular.isDefined(i)) {
var loadedCard = selectedFolder.$cards[i];
if (loadedCard.c_mail)
recipients.push(loadedCard.$shortFormat());
}
}));
} }
}); });