From 3e7af24697b7022bd63eb2733ab0740e71829267 Mon Sep 17 00:00:00 2001 From: Tankred Hase Date: Wed, 5 Jun 2013 02:50:56 +0200 Subject: [PATCH] implemented get Email post message --- src/js/app-router.js | 11 ++++++++--- src/js/view/compose-view.js | 20 +++++++++++++++++++- src/js/window-loader.js | 8 ++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/js/app-router.js b/src/js/app-router.js index 6fb5e6b..d71c8f1 100644 --- a/src/js/app-router.js +++ b/src/js/app-router.js @@ -21,12 +21,17 @@ }, compose: function(userId, folder, messageId) { - var composeView = new app.view.ComposeView({ + var self = this, + composeView; + + composeView = new app.view.ComposeView({ account: userId, folder: folder, - messageId: (messageId) ? decodeURIComponent(messageId) : null + messageId: (messageId) ? decodeURIComponent(messageId) : null, + callback: function(view) { + self.changePage(view); + } }); - this.changePage(composeView); }, folders: function(userId) { diff --git a/src/js/view/compose-view.js b/src/js/view/compose-view.js index 0f616c7..9137713 100644 --- a/src/js/view/compose-view.js +++ b/src/js/view/compose-view.js @@ -4,13 +4,31 @@ app.view.ComposeView = Backbone.View.extend({ initialize: function(args) { + var self = this; + this.template = _.template(app.util.tpl.get('compose')); this.account = args.account; this.folder = args.folder; if (args.folder && args.messageId) { // fetch reply-to email model - this.replyTo = args.dao.getItem(args.folder, args.messageId); + // post message to main window + 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.replyTo = resArgs.email; + args.callback(self); + }); + + } else { + args.callback(self); } }, diff --git a/src/js/window-loader.js b/src/js/window-loader.js index 564e43a..49862b7 100644 --- a/src/js/window-loader.js +++ b/src/js/window-loader.js @@ -117,6 +117,14 @@ }); }); + } else if (cmd === 'getEmail') { + // list emails from folder + var mail = emailDao.getItem(args.folder, args.messageId); + callback({ + err: null, + email: mail.toJSON() + }); + } else if (cmd === 'sendEmail') { // list emails from folder sendEmail(args.email, function(err) {