From e3ca91e325a3f9bb6c85fa72d1d17369b8ccb937 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Sat, 12 Sep 2015 15:14:49 -0400 Subject: [PATCH] #3591 fixes item 1 --- public/src/admin/extend/plugins.js | 23 +++++++++++++++-------- src/plugins/install.js | 4 ++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 5944f98f91..c886a56c75 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -38,6 +38,8 @@ define('admin/extend/plugins', function() { }); pluginsList.on('click', 'button[data-action="toggleInstall"]', function() { + var btn = $(this); + btn.attr('disabled', true); pluginID = $(this).parents('li').attr('data-plugin-id'); if ($(this).attr('data-installed') === '1') { @@ -49,6 +51,8 @@ define('admin/extend/plugins', function() { bootbox.confirm('

NodeBB could not reach the package manager, proceed with installation of latest version?

Server returned (' + err.status + '): ' + err.responseText + '
', function(confirm) { if (confirm) { Plugins.toggleInstall(pluginID, 'latest'); + } else { + btn.removeAttr('disabled'); } }); return; @@ -58,9 +62,15 @@ define('admin/extend/plugins', function() { if (payload.version !== 'latest') { Plugins.toggleInstall(pluginID, payload.version); } else if (payload.version === 'latest') { - confirmInstall(pluginID, function() { - Plugins.toggleInstall(pluginID, 'latest'); + confirmInstall(pluginID, function(confirm) { + if (confirm) { + Plugins.toggleInstall(pluginID, 'latest'); + } else { + btn.removeAttr('disabled'); + } }); + } else { + btn.removeAttr('disabled'); } }); }); @@ -137,9 +147,7 @@ define('admin/extend/plugins', function() { '

In the event that NodeBB cannot boot properly:

' + '
$ ./nodebb reset plugin="' + pluginID + '"
' + '

Continue installation of latest version of this plugin?

', function(confirm) { - if (confirm) { - callback(); - } + callback(confirm); }); } @@ -176,15 +184,14 @@ define('admin/extend/plugins', function() { Plugins.toggleInstall = function(pluginID, version, callback) { var btn = $('li[data-plugin-id="' + pluginID + '"] button[data-action="toggleInstall"]'); var activateBtn = btn.siblings('[data-action="toggleActive"]'); - btn.html(btn.html() + 'ing') - .attr('disabled', true) - .find('i').attr('class', 'fa fa-refresh fa-spin'); + btn.find('i').attr('class', 'fa fa-refresh fa-spin'); socket.emit('admin.plugins.toggleInstall', { id: pluginID, version: version }, function(err, pluginData) { if (err) { + btn.removeAttr('disabled'); return app.alertError(err.message); } diff --git a/src/plugins/install.js b/src/plugins/install.js index 693e90c866..cdc8743b69 100644 --- a/src/plugins/install.js +++ b/src/plugins/install.js @@ -44,8 +44,8 @@ module.exports = function(Plugins) { if (err) { return next(err); } - db.sortedSetAdd('plugins:active', count, id, next); - }); + db.sortedSetAdd('plugins:active', count, id, next); + }); } }, function(next) {