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 folder = this.props.accounts[accIndex].folders[folderIndex];
if (folder.folderId && (this.state.selectedAccount != accIndex || this.state.selectedFolder != folderIndex))
Store.loadFolder(folder.folderId);
if (this.state.selectedAccount != accIndex || this.state.selectedFolder != folderIndex)
{
if (folder.folderId)
Store.loadFolder({ folderId: folder.folderId });
else
Store.loadFolder({ accountId: acc.accountId, folderType: folder.type });
}
this.setState({ selectedAccount: accIndex, selectedFolder: folderIndex });
},
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 start = 0;
@ -149,7 +149,7 @@ var Store = module.exports = {
start += groups[i].messageCount;
}
Store.setAll({
folderId: folderId,
folderParams: folderParams,
listGroups: groups,
messages: []
});
@ -159,7 +159,10 @@ var Store = module.exports = {
loadMessages: function(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 par = res.body.messages;