1
0
mirror of https://github.com/moparisthebest/mail synced 2025-03-11 15:09:40 -04:00

prefill compose view for replying works

This commit is contained in:
Tankred Hase 2013-05-04 15:08:54 +02:00
parent 7e137549d0
commit ebbb16866a
4 changed files with 43 additions and 5 deletions

View File

@ -8,7 +8,8 @@
'compose': 'compose', 'compose': 'compose',
'accounts/:userId/folders': 'folders', 'accounts/:userId/folders': 'folders',
'accounts/:userId/folders/:folder': 'messagelist', 'accounts/:userId/folders/:folder': 'messagelist',
'accounts/:userId/folders/:folder/read/:messageId': 'read' 'accounts/:userId/folders/:folder/read/:messageId': 'read',
'accounts/:userId/folders/:folder/reply/:messageId': 'compose'
}, },
initialize: function() {}, initialize: function() {},

View File

@ -18,6 +18,11 @@
page.html(this.template()); page.html(this.template());
// prefill fields for reply
if (this.replyTo) {
self.fillFields();
}
page.find('#sendBtn').on('vmousedown', function() { page.find('#sendBtn').on('vmousedown', function() {
self.sendEmail(); self.sendEmail();
}); });
@ -25,6 +30,33 @@
return this; return this;
}, },
fillFields: function() {
var page = $(this.el),
re = this.replyTo,
from = re.get('from')[0],
subject = re.get('subject');
// fill recipient field
var replyToAddress = from.address;
page.find('#toInput').val(replyToAddress);
// fill subject
subject = 'Re: ' + ((subject) ? subject.replace('Re: ', '') : '');
page.find('#subjectInput').val(subject);
// fill text body
var body = '\n\n' + re.get('sentDate') + ' ' + from.name + ' <' + from.address + '>\n';
var bodyRows = re.get('body').split('\n');
var isHtml = false;
_.each(bodyRows, function(row) {
if (row.indexOf('<') === 0) {
isHtml = true;
}
body += (!isHtml) ? '> ' + row + '\n' : '';
});
page.find('#bodyTextarea').text(body);
},
/** /**
* Send an email via the email dao * Send an email via the email dao
*/ */
@ -44,7 +76,7 @@
return; return;
} }
var signature = '\n\nSent with whiteout.io - get your mailbox for end-2-end encrypted messaging!\nhttps://mail.whiteout.io'; var signature = '\n\nSent with whiteout mail - get your free mailbox for end-2-end encrypted messaging!\nhttps://mail.whiteout.io';
var email = new app.model.Email({ var email = new app.model.Email({
from: self.dao.account.get('emailAddress'), from: self.dao.account.get('emailAddress'),
@ -60,7 +92,7 @@
return; return;
} }
//window.history.back(); window.history.back();
}); });
} }

View File

@ -9,7 +9,12 @@
}, },
render: function(eventName) { render: function(eventName) {
$(this.el).html(this.template(this.model.toJSON())); var params = this.model.toJSON();
params.account = this.options.dao.account.get('emailAddress');
params.folder = this.options.folder;
params.id = encodeURIComponent(params.id);
$(this.el).html(this.template(params));
this.renderBody(); this.renderBody();
return this; return this;

View File

@ -1,7 +1,7 @@
<div data-role="header" data-position="fixed"> <div data-role="header" data-position="fixed">
<input type="button" id="backBtn" data-icon="arrow-l" value="Back" class="ui-btn-left"> <input type="button" id="backBtn" data-icon="arrow-l" value="Back" class="ui-btn-left">
<h1><%- subject %></h1> <h1><%- subject %></h1>
<a href="#compose" data-role="button" data-icon="back" data-iconpos="right" class="ui-btn-right">Reply</a> <a href="#accounts/<%- account %>/folders/<%- folder %>/reply/<%- id %>" data-role="button" data-icon="back" data-iconpos="right" class="ui-btn-right">Reply</a>
</div><!-- /header --> </div><!-- /header -->
<div data-role="content"> <div data-role="content">