Implement metafolders
parent
31da61a9ac
commit
4c9e6c3d3a
|
@ -34,8 +34,13 @@ var FolderList = React.createClass({
|
||||||
{
|
{
|
||||||
var acc = this.props.accounts[accIndex];
|
var acc = this.props.accounts[accIndex];
|
||||||
var folder = this.props.accounts[accIndex].folders[folderIndex];
|
var folder = this.props.accounts[accIndex].folders[folderIndex];
|
||||||
if (folder.folderId && (this.state.selectedAccount != accIndex || this.state.selectedFolder != folderIndex))
|
if (this.state.selectedAccount != accIndex || this.state.selectedFolder != folderIndex)
|
||||||
Store.loadFolder(folder.folderId);
|
{
|
||||||
|
if (folder.folderId)
|
||||||
|
Store.loadFolder({ folderId: folder.folderId });
|
||||||
|
else
|
||||||
|
Store.loadFolder({ accountId: acc.accountId, folderType: folder.type });
|
||||||
|
}
|
||||||
this.setState({ selectedAccount: accIndex, selectedFolder: folderIndex });
|
this.setState({ selectedAccount: accIndex, selectedFolder: folderIndex });
|
||||||
},
|
},
|
||||||
getInitialState: function()
|
getInitialState: function()
|
||||||
|
|
11
Store.js
11
Store.js
|
@ -137,9 +137,9 @@ var Store = module.exports = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
loadFolder: function(folderId)
|
loadFolder: function(folderParams)
|
||||||
{
|
{
|
||||||
superagent.get('backend/groups').query({ folderId: folderId }).end(function(err, res)
|
superagent.get('backend/groups').query(folderParams).end(function(err, res)
|
||||||
{
|
{
|
||||||
var groups = res.body.groups.map(g => { return { name: Util.getGroupName(g.name), messageCount: g.count-0, start: 0 } });
|
var groups = res.body.groups.map(g => { return { name: Util.getGroupName(g.name), messageCount: g.count-0, start: 0 } });
|
||||||
var start = 0;
|
var start = 0;
|
||||||
|
@ -149,7 +149,7 @@ var Store = module.exports = {
|
||||||
start += groups[i].messageCount;
|
start += groups[i].messageCount;
|
||||||
}
|
}
|
||||||
Store.setAll({
|
Store.setAll({
|
||||||
folderId: folderId,
|
folderParams: folderParams,
|
||||||
listGroups: groups,
|
listGroups: groups,
|
||||||
messages: []
|
messages: []
|
||||||
});
|
});
|
||||||
|
@ -159,7 +159,10 @@ var Store = module.exports = {
|
||||||
loadMessages: function(start, count)
|
loadMessages: function(start, count)
|
||||||
{
|
{
|
||||||
console.log('load '+start+'..'+count);
|
console.log('load '+start+'..'+count);
|
||||||
superagent.get('backend/messages').query({ folderId: Store.get('folderId'), limit: count, offset: start }).end(function(err, res)
|
var p = { ...Store.get('folderParams') };
|
||||||
|
p.offset = start;
|
||||||
|
p.limit = count;
|
||||||
|
superagent.get('backend/messages').query(p).end(function(err, res)
|
||||||
{
|
{
|
||||||
var msgs = Store.get('messages').slice(0);
|
var msgs = Store.get('messages').slice(0);
|
||||||
var par = res.body.messages;
|
var par = res.body.messages;
|
||||||
|
|
Loading…
Reference in New Issue