diff --git a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page index 87e8b639ec..2624bd4024 100644 --- a/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page +++ b/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.plugin.manager/Downgrade.page @@ -114,18 +114,44 @@ function cleanupDiagnostics() { setTimeout(cleanupDiagnostics, 2000); } +function reportDowngradeError(xhr) { + $('div.spinner').hide('slow'); + + const response = xhr && xhr.responseJSON; + const message = response && response.error + ? response.error + : "_(Unable to complete the downgrade. Please try again.)_"; + + swal({ + title: "_(Downgrade failed)_", + text: message, + type: 'error', + confirmButtonText: "_(Ok)_", + }); +} + function startDowngrade() { $('div.spinner').show('slow'); - $.get( + $.post( '/plugins/dynamix.plugin.manager/include/Downgrade.php', - { - version: 'previousVersion ?>', + { action: 'prepare' }, + function(prepareResponse) { + $.post( + '/plugins/dynamix.plugin.manager/include/Downgrade.php', + { + nonce: prepareResponse.nonce, + confirm: 'yes', + version: 'previousVersion ?>', + }, + function() { + refresh(); + }, + 'json' + ).fail(reportDowngradeError); }, - function() { - refresh(); - } - ); + 'json' + ).fail(reportDowngradeError); } function confirmDowngrade() {