From 7c5620f51d3fb4889526b99dce0f0a02155f78c6 Mon Sep 17 00:00:00 2001 From: j Date: Tue, 13 Nov 2018 16:31:03 +0000 Subject: [PATCH] lazyload list/edit item count --- static/js/folderList.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/static/js/folderList.js b/static/js/folderList.js index fa4bd717..15ae6b65 100644 --- a/static/js/folderList.js +++ b/static/js/folderList.js @@ -155,6 +155,11 @@ pandora.ui.folderList = function(id, section) { {key: 'status', value: 'featured', operator: '='} ], operator: '&'}; } + var _updateItemsCount = false; + if (data.keys && Ox.contains(data.keys, 'items')) { + data.keys = data.keys.filter(function(key) { return key != 'items' }) + _updateItemsCount = true; + } return pandora.api['find' + folderItems](Ox.extend(data, { query: query }), function(result) { @@ -162,6 +167,13 @@ pandora.ui.folderList = function(id, section) { pandora.$ui.mainMenu.updateLists(id, result.data.items); } callback(result); + if (result.data.items.length && _updateItemsCount) { + setTimeout(function() { + updateItemsCount(result.data.items.map(function(item) { + return item.id; + })); + }, 500) + } }); }; } else { @@ -451,5 +463,21 @@ pandora.ui.folderList = function(id, section) { } } + function updateItemsCount(ids) { + Ox.serialForEach(ids, function(item, index, items, callback) { + pandora.api['find' + folderItems]({ + keys: ['items'], + query: { + conditions: [{key: 'id', value: item, operator: '=='}] + }, + range: [0, 1] + }, function(result) { + that.value(item, 'items', result.data.items[0].items); + callback(); + }) + }) + + } + return that; };