mail/src/js/view/read-view.js

70 lines
1.7 KiB
JavaScript
Raw Normal View History

(function() {
'use strict';
app.view.ReadView = Backbone.View.extend({
initialize: function(args) {
2013-06-04 21:12:18 -04:00
var self = this;
this.template = _.template(app.util.tpl.get('read'));
2013-06-04 21:12:18 -04:00
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
2013-06-06 16:05:37 -04:00
self.model = resArgs.email;
2013-06-04 21:12:18 -04:00
args.callback(self);
});
},
2013-06-04 21:12:18 -04:00
render: function() {
2013-06-06 16:05:37 -04:00
var params = this.model;
2013-06-04 21:12:18 -04:00
params.account = this.account;
params.folder = this.folder;
params.id = encodeURIComponent(params.id);
$(this.el).html(this.template(params));
2013-05-04 07:02:17 -04:00
this.renderBody();
return this;
},
2013-05-04 07:02:17 -04:00
renderBody: function(tryHtml) {
var page = $(this.el),
2013-06-06 16:05:37 -04:00
emailBody = this.model.body;
2013-05-04 07:02:17 -04:00
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');
2013-05-04 07:02:17 -04:00
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';
};
2013-05-04 07:02:17 -04:00
// send email body to content frame
document.getElementById('mailContentFrame').contentWindow.postMessage(emailBody, '*');
});
2013-05-04 07:02:17 -04:00
}
}
});
}());