From f4fdc9c2a3b4f1a7bb7aa398507f1f32eaba8ff2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 28 Feb 2021 12:52:27 +0300 Subject: [PATCH] some plugin updater UI improvements --- js/PrefHelpers.js | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js index 4fb3cdddf..5450bd98c 100644 --- a/js/PrefHelpers.js +++ b/js/PrefHelpers.js @@ -335,17 +335,21 @@ const Helpers = { performUpdate: function() { const container = dialog.domNode.querySelector(".update-results"); - container.innerHTML = `
  • ${__("Loading, please wait...")}
  • `; + container.innerHTML = `
  • ${__("Updating, please wait...")}
  • `; + let enable_update_btn = false; xhr.json("backend.php", {op: "pref-prefs", method: "updateLocalPlugins", name: name}, (reply) => { if (!reply) { - container.innerHTML = `
  • ${__("Operation failed: check event log.")}
  • `; + container.innerHTML = `
  • ${__("Operation failed: check event log.")}
  • `; } else { container.innerHTML = ""; reply.forEach((p) => { - if (p.rv.s == 0) dialog.need_refresh = true; + if (p.rv.s == 0) + dialog.need_refresh = true; + else + enable_update_btn = true; container.innerHTML += ` @@ -353,21 +357,24 @@ const Helpers = { ${p.rv.e ? `
    ${p.rv.e}
    ` : ''} ${p.rv.o ? `
    ${p.rv.o}
    ` : ''}

    - ${p.rv.s ? __("Exited with RC: %d").replace("%d", p.rv.s) : __("OK")} -

    + ${p.rv.s ? App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", p.rv.s) : + App.FormFields.icon("check") + " " + __("Update done.")} +

    ` }); } + + dijit.getEnclosingWidget(dialog.domNode.querySelector(".update-btn")).attr('disabled', !enable_update_btn); }); }, content: ` `, @@ -378,25 +385,33 @@ const Helpers = { xhr.json("backend.php", {op: "pref-prefs", method: "checkForPluginUpdates", name: name}, (reply) => { const container = dialog.domNode.querySelector(".update-results"); + let enable_update_btn = false; if (!reply) { - container.innerHTML = `
  • ${__("Operation failed: check event log.")}
  • `; + container.innerHTML = `
  • ${__("Operation failed: check event log.")}
  • `; } else { container.innerHTML = ""; reply.forEach((p) => { + if (p.rv.s == 0) + enable_update_btn = true; + container.innerHTML += `
  • ${p.plugin}

    ${p.rv.e ? `
    ${p.rv.e}
    ` : ''} ${p.rv.o ? `
    ${p.rv.o}
    ` : ''}

    - ${p.rv.s ? __("Exited with RC: %d").replace("%d", p.rv.s) : __("OK")} + ${p.rv.s ? App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", p.rv.s) : + App.FormFields.icon("check") + " " + __("Ready to update")}

  • ` }); } + + dijit.getEnclosingWidget(dialog.domNode.querySelector(".update-btn")).attr('disabled', !enable_update_btn); + }); });