From eab3ee111a65f75e95e1ea46e7bf7135b3949d52 Mon Sep 17 00:00:00 2001 From: Ludovic Marcotte Date: Tue, 25 Aug 2015 11:45:17 -0400 Subject: [PATCH] (feat) now use md-on-demand for (hopefully) faster mailbox loading --- .../MailerUI/UIxMailFolderTemplate.wox | 5 ++- .../js/Mailer/Mailbox.service.js | 31 ++++++++++++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox index a4d04734a..04a4769a0 100644 --- a/UI/Templates/MailerUI/UIxMailFolderTemplate.wox +++ b/UI/Templates/MailerUI/UIxMailFolderTemplate.wox @@ -14,7 +14,8 @@ -
+
{{currentMessage.$shortAddress('from')}}
{{currentMessage.subject}}
-
warning diff --git a/UI/WebServerResources/js/Mailer/Mailbox.service.js b/UI/WebServerResources/js/Mailer/Mailbox.service.js index fab6ca16b..6d3dc4de1 100644 --- a/UI/WebServerResources/js/Mailer/Mailbox.service.js +++ b/UI/WebServerResources/js/Mailer/Mailbox.service.js @@ -167,6 +167,35 @@ } }; + /** + * @function getLength + * @memberof Mailbox.prototype + * @desc Used by md-virtual-repeat / md-on-demand + * @returns the number of items in the mailbox + */ + Mailbox.prototype.getLength = function() { + return this.$messages.length; + }; + + /** + * @function getItemAtIndex + * @memberof Mailbox.prototype + * @desc Used by md-virtual-repeat / md-on-demand + * @returns the message as the specified index + */ + Mailbox.prototype.getItemAtIndex = function(index) { + var message; + + if (index >= 0 && index < this.$messages.length) { + message = this.$messages[index]; + + if (this.$loadMessage(message.uid)) + return message; + } + + return null; + }; + /** * @function $id * @memberof Mailbox.prototype @@ -588,7 +617,7 @@ if (_this.uids) { Mailbox.$log.debug('unwrapping ' + data.uids.length + ' messages'); - + // First entry of 'headers' are keys headers = _.invoke(_this.headers[0], 'toLowerCase'); _this.headers.splice(0, 1);