mirror of https://github.com/moparisthebest/mail
70 lines
1.6 KiB
JavaScript
70 lines
1.6 KiB
JavaScript
define(['jquery', 'underscore', 'backbone', 'js/app-config',
|
|
'js/view/folderlistitem-view'
|
|
], function($, _, Backbone, app, FolderListItemView) {
|
|
'use strict';
|
|
|
|
var FolderListView = Backbone.View.extend({
|
|
|
|
initialize: function() {
|
|
this.template = _.template(app.util.tpl.get('folderlist'));
|
|
},
|
|
|
|
render: function() {
|
|
var page = $(this.el);
|
|
|
|
page.html(this.template(this.options));
|
|
|
|
// change page for folder links on vmousedown instead of waiting on vmouseup
|
|
page.on('vmousedown', 'li a', function(e) {
|
|
e.preventDefault();
|
|
var href = $(e.currentTarget).attr('href');
|
|
window.location = href;
|
|
});
|
|
|
|
return this;
|
|
},
|
|
|
|
listFolder: function() {
|
|
var self = this,
|
|
page = $(this.el),
|
|
list = page.find('#folder-list'),
|
|
listItemArgs;
|
|
|
|
// show loading msg during init
|
|
$.mobile.loading('show', {
|
|
text: 'Fetching folders...',
|
|
textVisible: true,
|
|
theme: 'c'
|
|
});
|
|
|
|
// post message to main window
|
|
app.util.postMessage('listFolders', {}, function(resArgs) {
|
|
var err = resArgs.err;
|
|
|
|
if (err || !resArgs.folders) {
|
|
$.mobile.loading('hide');
|
|
window.alert('Error listing folders: ' + err.errMsg);
|
|
return;
|
|
}
|
|
|
|
// clear list
|
|
list.html('');
|
|
|
|
// append folder to list
|
|
resArgs.folders.forEach(function(folder) {
|
|
listItemArgs = {
|
|
account: self.options.account,
|
|
model: folder
|
|
};
|
|
list.append(new FolderListItemView(listItemArgs).render().el);
|
|
});
|
|
|
|
// refresh list view
|
|
list.listview('refresh');
|
|
$.mobile.loading('hide');
|
|
});
|
|
}
|
|
});
|
|
|
|
return FolderListView;
|
|
}); |