mirror of
https://github.com/moparisthebest/mail
synced 2025-02-13 05:30:21 -05:00
106 lines
2.1 KiB
JavaScript
106 lines
2.1 KiB
JavaScript
(function() {
|
|
'use strict';
|
|
|
|
app.view.MessageListView = Backbone.View.extend({
|
|
|
|
initialize: function(args) {
|
|
this.template = _.template(app.util.tpl.get('messagelist'));
|
|
this.folder = args.folder;
|
|
},
|
|
|
|
render: function() {
|
|
var self = this,
|
|
page = $(this.el);
|
|
|
|
page.html(this.template(this.options));
|
|
|
|
page.find('#refreshBtn').on('vmousedown', function() {
|
|
self.syncFolder();
|
|
});
|
|
|
|
return this;
|
|
},
|
|
|
|
/**
|
|
* Synchronize emails from the cloud
|
|
*/
|
|
syncFolder: function() {
|
|
var self = this;
|
|
|
|
$.mobile.loading('show', {
|
|
text: 'Syncing...',
|
|
textVisible: true
|
|
});
|
|
|
|
// post message to main window
|
|
app.util.postMessage('syncEmails', {
|
|
folder: self.folder
|
|
}, function(resArgs) {
|
|
var err = resArgs.err;
|
|
|
|
$.mobile.loading('hide');
|
|
|
|
// check for error
|
|
if (err) {
|
|
window.alert('Syncing failed!');
|
|
return;
|
|
}
|
|
|
|
// read local storage and add to list view
|
|
self.loadItems();
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Load items from local storage
|
|
*/
|
|
loadItems: function() {
|
|
var self = this,
|
|
page = $(this.el),
|
|
list = page.find('#message-list'),
|
|
listItemArgs, i, email;
|
|
|
|
$.mobile.loading('show', {
|
|
text: 'decrypting...',
|
|
textVisible: true
|
|
});
|
|
|
|
// post message to main window
|
|
app.util.postMessage('listEmails', {
|
|
folder: self.folder,
|
|
offset: 0,
|
|
num: 10
|
|
}, function(resArgs) {
|
|
var err = resArgs.err;
|
|
var collection = resArgs.collection;
|
|
|
|
// check for error
|
|
if (err) {
|
|
$.mobile.loading('hide');
|
|
window.alert('Loading items from storage failed!');
|
|
return;
|
|
}
|
|
|
|
// clear list
|
|
list.html('');
|
|
|
|
// append items to list in reverse order so mails with the most recent date will be displayed first
|
|
for (i = collection.length - 1; i >= 0; i--) {
|
|
email = collection[i];
|
|
listItemArgs = {
|
|
account: self.options.account,
|
|
folder: self.folder,
|
|
model: email
|
|
};
|
|
list.append(new app.view.MessageListItemView(listItemArgs).render().el);
|
|
}
|
|
|
|
// refresh list view
|
|
list.listview('refresh');
|
|
$.mobile.loading('hide');
|
|
});
|
|
}
|
|
|
|
});
|
|
|
|
}()); |