diff --git a/src/node/hooks/express/adminplugins.js b/src/node/hooks/express/adminplugins.js index 7e221cf1e..85bf2108b 100644 --- a/src/node/hooks/express/adminplugins.js +++ b/src/node/hooks/express/adminplugins.js @@ -36,7 +36,7 @@ exports.socketio = function (hook_name, args, cb) { socket.on("checkUpdates", function() { socket.emit("progress", {progress:0, message:'Checking for plugin updates...'}); // Check plugins for updates - installer.search({offset: 0, pattern: '', limit: 500}, /*useCache:*/true, function(data) { // hacky + installer.search({offset: 0, pattern: '', limit: 500}, /*maxCacheAge:*/60*10, function(data) { // hacky if (!data.results) return; var updatable = _(plugins.plugins).keys().filter(function(plugin) { if(!data.results[plugin]) return false; @@ -51,7 +51,7 @@ exports.socketio = function (hook_name, args, cb) { socket.on("search", function (query) { socket.emit("progress", {progress:0, message:'Fetching results...'}); - installer.search(query, true, function (progress) { + installer.search(query, /*maxCacheAge:*/60*10, function (progress) { if (progress.results) socket.emit("search-result", progress); socket.emit("progress", progress); diff --git a/src/static/js/admin/plugins.js b/src/static/js/admin/plugins.js index a973875ce..d7f94d2cf 100644 --- a/src/static/js/admin/plugins.js +++ b/src/static/js/admin/plugins.js @@ -163,8 +163,10 @@ $(document).ready(function () { } updateHandlers(); - socket.emit('checkUpdates'); - tasks++; + setTimeout(function() { + socket.emit('checkUpdates'); + tasks++; + }, 5000) }); socket.on('updatable', function(data) { diff --git a/src/static/js/pluginfw/installer.js b/src/static/js/pluginfw/installer.js index 15d879409..14a3b7be5 100644 --- a/src/static/js/pluginfw/installer.js +++ b/src/static/js/pluginfw/installer.js @@ -71,12 +71,13 @@ exports.install = function(plugin_name, cb) { }; exports.searchCache = null; +var cacheTimestamp = 0; -exports.search = function(query, cache, cb) { +exports.search = function(query, maxCacheAge, cb) { withNpm( function (cb) { var getData = function (cb) { - if (cache && exports.searchCache) { + if (maxCacheAge && exports.searchCache && Math.round(+new Date/1000)-cacheTimestamp < maxCacheAge) { cb(null, exports.searchCache); } else { registry.get( @@ -84,6 +85,7 @@ exports.search = function(query, cache, cb) { function (er, data) { if (er) return cb(er); exports.searchCache = data; + cacheTimestamp = Math.round(+new Date/1000) cb(er, data); } );