From 92ba7df9c615c658ed970d190620401e82282386 Mon Sep 17 00:00:00 2001 From: billz Date: Wed, 25 Dec 2024 19:03:41 -0800 Subject: [PATCH] Create plugin install event handler --- app/js/custom.js | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/app/js/custom.js b/app/js/custom.js index 1b73de31..30f397b5 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -490,10 +490,42 @@ $('#install-user-plugin').on('shown.bs.modal', function (e) { $('#plugin-configuration').html(formatProperty(manifestData.configuration || {})); $('#plugin-dependencies').html(formatProperty(manifestData.dependencies || {})); $('#plugin-sudoers').html(formatProperty(manifestData.sudoers || [])); - $('#plugin-user-name').html(manifestData.user_nonprivileged.name || {}); + $('#plugin-user-name').html(manifestData.user_nonprivileged.name || 'None'); } }); +$('#js-install-plugin-confirm').on('click', function (e) { + var progressText = $('#js-install-plugin-confirm').attr('data-message'); + var successHtml = $('#plugin-install-message').attr('data-message'); + var closeHtml = $('#js-system-reset-cancel').attr('data-message'); + var pluginUri = $('#plugin-uri a').attr('href'); + var pluginVersion = $('#plugin-version').text(); + var csrfToken = $('meta[name=csrf_token]').attr('content'); + + $("#install-user-plugin").modal('hide'); + $("#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').text(successHtml); + $('#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').text('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"); + } + },300); + }); +}); + +$('#js-install-plugin-ok').on('click', function (e) { + $("#install-plugin-progress").modal('hide'); + window.location.reload(); +}); + function formatProperty(prop) { if (Array.isArray(prop)) { if (typeof prop[0] === 'object') {