diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index 9aaba8627..8e6c91f70 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -837,6 +837,7 @@ define([ var proxy = store.proxy; var userObject = store.userObject = UserObject.init(proxy.drive, { pinPads: Store.pinPads, + unpinPads: Store.unpinPads, loggedIn: store.loggedIn, log: function (msg) { postMessage("DRIVE_LOG", msg); diff --git a/www/common/outer/userObject.js b/www/common/outer/userObject.js index 10a796e3c..32e3e3b92 100644 --- a/www/common/outer/userObject.js +++ b/www/common/outer/userObject.js @@ -13,6 +13,9 @@ define([ }; module.init = function (config, exp, files) { + var unpinPads = config.unpinPads || function () { + console.error("unpinPads was not provided"); + }; var pinPads = config.pinPads; var loggedIn = config.loggedIn; var workgroup = config.workgroup; @@ -83,11 +86,21 @@ define([ if (workgroup || (!loggedIn && !config.testMode)) { return; } var filesList = exp.getFiles([ROOT, 'hrefArray', TRASH]); + var toClean = []; exp.getFiles([FILES_DATA]).forEach(function (id) { if (filesList.indexOf(id) === -1) { + var fd = exp.getFileData(id); + if (fd && fd.href) { + toClean.push(Hash.hrefToHexChannelId(fd.href)); + } spliceFileData(id); } }); + if (!toClean.length) { return; } + unpinPads(toClean, function (response) { + if (response && response.error) { return console.error(response.error); } + // console.error(response); + }); }; var deleteHrefs = function (ids) { ids.forEach(function (obj) {