diff --git a/app/js/custom.js b/app/js/custom.js index eac5e17b..d0b83762 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -513,22 +513,47 @@ $('#js-install-plugin-confirm').on('click', function (e) { if ($('#js-install-plugin-confirm').text() === 'Install now') { $("#install-plugin-progress").modal('show'); - $.post('ajax/plugins/do_plugin_install.php?',{'plugin_uri': pluginUri, - 'plugin_version': pluginVersion, 'csrf_token': csrfToken},function(data){ - setTimeout(function(){ - response = JSON.parse(data); - if (response === true) { - $('#plugin-install-message').contents().first().replaceWith(successText); - $('#plugin-install-message').find('i') - .removeClass('fas fa-cog fa-spin link-secondary') - .addClass('fas fa-check'); - $('#js-install-plugin-ok').removeAttr("disabled"); - } else { - $('#plugin-install-message').contents().first().replaceWith('An error occurred installing the plugin.'); - $('#plugin-install-message').find('i').removeClass('fas fa-cog fa-spin link-secondary'); - $('#js-install-plugin-ok').removeAttr("disabled"); - } - },200); + $.post( + 'ajax/plugins/do_plugin_install.php', + { + 'plugin_uri': pluginUri, + 'plugin_version': pluginVersion, + 'csrf_token': csrfToken + }, + function (data) { + setTimeout(function () { + response = JSON.parse(data); + if (response === true) { + $('#plugin-install-message').contents().first().replaceWith(successText); + $('#plugin-install-message') + .find('i') + .removeClass('fas fa-cog fa-spin link-secondary') + .addClass('fas fa-check'); + $('#js-install-plugin-ok').removeAttr("disabled"); + } else { + const errorMessage = jsonData.error || 'An unknown error occurred.'; + var errorLog = ''; + $('#plugin-install-message') + .contents() + .first() + .replaceWith('An error occurred installing the plugin:'); + $('#plugin-install-message').append(errorLog); + $('#plugin-install-message').find('i').removeClass('fas fa-cog fa-spin link-secondary'); + $('#js-install-plugin-ok').removeAttr("disabled"); + } + }, 200); + } + ).fail(function (xhr) { + const jsonData = JSON.parse(xhr.responseText); + const errorMessage = jsonData.error || 'An unknown error occurred.'; + $('#plugin-install-message') + .contents() + .first() + .replaceWith('An error occurred installing the plugin:'); + var errorLog = ''; + $('#plugin-install-message').append(errorLog); + $('#plugin-install-message').find('i').removeClass('fas fa-cog fa-spin link-secondary'); + $('#js-install-plugin-ok').removeAttr("disabled"); }); } });