diff --git a/src/js/app-controller.js b/src/js/app-controller.js index b48be04..087a5cb 100644 --- a/src/js/app-controller.js +++ b/src/js/app-controller.js @@ -20,8 +20,9 @@ define(function(require) { */ self.start = function(callback) { // the views to load - var views = ['login', 'compose', 'folderlist', 'messagelist', - 'messagelistitem', 'read' + var views = [ + 'login', 'compose', 'folderlist', 'folderlistitem', + 'messagelist', 'messagelistitem', 'read' ]; // are we running in native app or in browser? diff --git a/src/js/view/folderlist-view.js b/src/js/view/folderlist-view.js index 90e4e1b..7a3e86a 100644 --- a/src/js/view/folderlist-view.js +++ b/src/js/view/folderlist-view.js @@ -1,4 +1,6 @@ -define(['jquery', 'underscore', 'backbone', 'js/app-config'], function($, _, Backbone, app) { +define(['jquery', 'underscore', 'backbone', 'js/app-config', + 'js/view/folderlistitem-view' +], function($, _, Backbone, app, FolderListItemView) { 'use strict'; var FolderListView = Backbone.View.extend({ @@ -23,7 +25,10 @@ define(['jquery', 'underscore', 'backbone', 'js/app-config'], function($, _, Bac }, listFolder: function() { - // var page = $(this.el); + var self = this, + page = $(this.el), + list = page.find('#folder-list'), + listItemArgs; // show loading msg during init $.mobile.loading('show', { @@ -36,13 +41,27 @@ define(['jquery', 'underscore', 'backbone', 'js/app-config'], function($, _, Bac app.util.postMessage('listFolders', {}, function(resArgs) { var err = resArgs.err; - $.mobile.loading('hide'); - if (err) { - window.alert(err.errMsg); + if (err || !resArgs.folders) { + $.mobile.loading('hide'); + window.alert('Error listing folders: ' + err.errMsg); return; } - console.log(resArgs); + // 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'); }); } }); diff --git a/src/js/view/folderlistitem-view.js b/src/js/view/folderlistitem-view.js new file mode 100644 index 0000000..c088f6f --- /dev/null +++ b/src/js/view/folderlistitem-view.js @@ -0,0 +1,22 @@ +define(['jquery', 'underscore', 'backbone', 'js/app-config'], function($, _, Backbone, app) { + 'use strict'; + + var FolderListItemView = Backbone.View.extend({ + + tagName: "li", + + initialize: function() { + this.template = _.template(app.util.tpl.get('folderlistitem')); + }, + + render: function() { + var params = this.model; + params.account = this.options.account; + + $(this.el).html(this.template(params)); + return this; + } + }); + + return FolderListItemView; +}); \ No newline at end of file diff --git a/src/tpl/folderlist.html b/src/tpl/folderlist.html index c0b9076..96cd2c2 100644 --- a/src/tpl/folderlist.html +++ b/src/tpl/folderlist.html @@ -4,33 +4,7 @@
- +
diff --git a/src/tpl/folderlistitem.html b/src/tpl/folderlistitem.html new file mode 100644 index 0000000..aaba323 --- /dev/null +++ b/src/tpl/folderlistitem.html @@ -0,0 +1,5 @@ + + + <%- name %> + + \ No newline at end of file