mirror of
https://github.com/moparisthebest/mail
synced 2024-08-13 16:43:47 -04:00
70 lines
1.7 KiB
JavaScript
70 lines
1.7 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
app.view.ReadView = Backbone.View.extend({
|
|
|
|
initialize: function(args) {
|
|
var self = this;
|
|
|
|
this.template = _.template(app.util.tpl.get('read'));
|
|
this.account = args.account;
|
|
this.folder = args.folder;
|
|
|
|
app.util.postMessage('getEmail', {
|
|
folder: args.folder,
|
|
messageId: args.messageId
|
|
}, function(resArgs) {
|
|
var err = resArgs.err;
|
|
if (err) {
|
|
window.alert(JSON.stringify(err));
|
|
return;
|
|
}
|
|
// set mail to reply to
|
|
self.model = resArgs.email;
|
|
args.callback(self);
|
|
});
|
|
},
|
|
|
|
render: function() {
|
|
var params = this.model;
|
|
params.account = this.account;
|
|
params.folder = this.folder;
|
|
params.id = encodeURIComponent(params.id);
|
|
|
|
$(this.el).html(this.template(params));
|
|
this.renderBody();
|
|
|
|
return this;
|
|
},
|
|
|
|
renderBody: function(tryHtml) {
|
|
var page = $(this.el),
|
|
emailBody = this.model.body;
|
|
|
|
if (!tryHtml && emailBody.indexOf('</') === -1) {
|
|
// render text email
|
|
page.find('#bodyItem').html('<textarea></textarea>');
|
|
page.find('#bodyItem textarea').text(emailBody);
|
|
|
|
} else if (tryHtml && emailBody.indexOf('</') !== -1) {
|
|
// render html email inside a sandboxed iframe
|
|
var iframe = page.find('#mailContentFrame');
|
|
iframe.load(function() {
|
|
// set listener for the answering call, which return the document height
|
|
window.onmessage = function(e) {
|
|
// resize
|
|
var newheight = e.data;
|
|
//var newwidth = iframeDoc.body.scrollWidth;
|
|
iframe[0].height = (newheight) + 'px';
|
|
//iframe[0].width = (newwidth) + 'px';
|
|
};
|
|
|
|
// send email body to content frame
|
|
document.getElementById('mailContentFrame').contentWindow.postMessage(emailBody, '*');
|
|
});
|
|
}
|
|
}
|
|
|
|
});
|
|
|
|
}()); |