Implement metafolders

master
Vitaliy Filippov 2016-10-09 02:01:11 +03:00
parent 31da61a9ac
commit 4c9e6c3d3a
2 changed files with 14 additions and 6 deletions

View File

@ -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()

View File

@ -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;