mirror of
https://github.com/moparisthebest/mail
synced 2025-02-16 23:20:09 -05:00
displaying inbox message list works
This commit is contained in:
parent
3aac73ef2e
commit
cb8314f9d0
@ -104,6 +104,10 @@
|
|||||||
}
|
}
|
||||||
.subject {
|
.subject {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
width: 13.571em;
|
||||||
|
height: 1em;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
.sent-date {
|
.sent-date {
|
||||||
float: right;
|
float: right;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
define(function(require) {
|
define(function(require) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var appController = require('js/app-controller'),
|
var _ = require('underscore'),
|
||||||
|
appController = require('js/app-controller'),
|
||||||
moment = require('moment');
|
moment = require('moment');
|
||||||
|
|
||||||
var MessageListCtrl = function($scope, $routeParams) {
|
var MessageListCtrl = function($scope, $routeParams) {
|
||||||
@ -23,7 +24,7 @@ define(function(require) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
if (true) {
|
if (false) {
|
||||||
createDummyMails(function(emails) {
|
createDummyMails(function(emails) {
|
||||||
$scope.emails = emails;
|
$scope.emails = emails;
|
||||||
$scope.select($scope.emails[0]);
|
$scope.select($scope.emails[0]);
|
||||||
@ -38,14 +39,17 @@ define(function(require) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function fetchList(callback) {
|
function fetchList(callback) {
|
||||||
|
var folder = 'INBOX';
|
||||||
|
|
||||||
appController.fetchOAuthToken('passphrase', function(err) {
|
appController.fetchOAuthToken('passphrase', function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fetch imap folder's message list
|
||||||
appController._emailDao.imapListMessages({
|
appController._emailDao.imapListMessages({
|
||||||
folder: 'INBOX',
|
folder: folder,
|
||||||
offset: -6,
|
offset: -6,
|
||||||
num: 0
|
num: 0
|
||||||
}, function(err, emails) {
|
}, function(err, emails) {
|
||||||
@ -54,9 +58,35 @@ define(function(require) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addDisplayDate(emails);
|
// fetch message bodies
|
||||||
|
fetchBodies(emails, folder, function(messages) {
|
||||||
|
addDisplayDate(messages);
|
||||||
|
callback(messages);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function fetchBodies(messageList, folder, callback) {
|
||||||
|
var emails = [];
|
||||||
|
|
||||||
|
var after = _.after(messageList.length, function() {
|
||||||
callback(emails);
|
callback(emails);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_.each(messageList, function(messageItem) {
|
||||||
|
appController._emailDao.imapGetMessage({
|
||||||
|
folder: folder,
|
||||||
|
uid: messageItem.uid
|
||||||
|
}, function(err, message) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
emails.push(message);
|
||||||
|
after();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,7 +339,7 @@ define(function(require) {
|
|||||||
|
|
||||||
/* message was not found in cache... fetch from imap server */
|
/* message was not found in cache... fetch from imap server */
|
||||||
|
|
||||||
function bodyReady(err, gottenMessage) {
|
function messageReady(err, gottenMessage) {
|
||||||
message = gottenMessage;
|
message = gottenMessage;
|
||||||
itemCounter++;
|
itemCounter++;
|
||||||
// remember how many items should be fetched before the callback fires
|
// remember how many items should be fetched before the callback fires
|
||||||
@ -431,10 +431,8 @@ define(function(require) {
|
|||||||
self._imapClient.getMessage({
|
self._imapClient.getMessage({
|
||||||
path: options.folder,
|
path: options.folder,
|
||||||
uid: options.uid,
|
uid: options.uid,
|
||||||
onBody: bodyReady,
|
textOnly: true
|
||||||
/*onAttachment: attachmentReady*/
|
}, messageReady);
|
||||||
onEnd: bodyReady
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,9 +15,9 @@
|
|||||||
cordova: 'cordova-2.5.0',
|
cordova: 'cordova-2.5.0',
|
||||||
ImapClient: 'imap-client-browserified',
|
ImapClient: 'imap-client-browserified',
|
||||||
SmtpClient: 'smtp-client-browserified',
|
SmtpClient: 'smtp-client-browserified',
|
||||||
angular: 'angular/angular',
|
angular: 'angular/angular.min',
|
||||||
angularRoute: 'angular/angular-route',
|
angularRoute: 'angular/angular-route.min',
|
||||||
angularTouch: 'angular/angular-touch',
|
angularTouch: 'angular/angular-touch.min',
|
||||||
moment: 'moment.min'
|
moment: 'moment.min'
|
||||||
},
|
},
|
||||||
shim: {
|
shim: {
|
||||||
|
@ -13,10 +13,10 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li ng-repeat="email in emails" ng-class="{selected: email === selected}" ng-click="select(email)">
|
<li ng-repeat="email in emails" ng-class="{selected: email === selected}" ng-click="select(email)">
|
||||||
<div ng-class="{unread: email.unread, read: !email.unread}"></div>
|
<div ng-class="{unread: email.unread, read: !email.unread}"></div>
|
||||||
<div ng-switch="email.attachments !== undefined">
|
<div ng-switch="email.attachments !== undefined && email.attachments.length > 0">
|
||||||
<div ng-switch-when="true" class="icon-attachment"></div>
|
<div ng-switch-when="true" class="icon-attachment"></div>
|
||||||
</div>
|
</div>
|
||||||
<p class="from">{{email.from[0].name}}</p>
|
<p class="from">{{email.from[0].name || email.from[0].address}}</p>
|
||||||
<p class="subject-line">
|
<p class="subject-line">
|
||||||
<span class="subject">{{email.subject}}</span>
|
<span class="subject">{{email.subject}}</span>
|
||||||
<span class="sent-date">{{email.displayDate}}</span>
|
<span class="sent-date">{{email.displayDate}}</span>
|
||||||
|
@ -287,7 +287,7 @@ define(function(require) {
|
|||||||
it('should parse message body without attachement', function(done) {
|
it('should parse message body without attachement', function(done) {
|
||||||
var uid = 415;
|
var uid = 415;
|
||||||
|
|
||||||
imapClientStub.getMessage.yieldsTo('onBody', null, {
|
imapClientStub.getMessage.yields(null, {
|
||||||
uid: uid,
|
uid: uid,
|
||||||
body: ''
|
body: ''
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user