diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index 77b57b4d8e5e514d30d9e42bf8a56083cd37e1ad..16c41df9dcb048a4a00a6ea40458b9cd9640e6b2 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -1057,7 +1057,7 @@ class Pref_Prefs extends Handler_Protected { private static function _plugin_needs_update($root_dir, $plugin_name) { $plugin_dir = "$root_dir/plugins.local/" . basename($plugin_name); - $rv = []; + $rv = null; if (is_dir($plugin_dir) && is_dir("$plugin_dir/.git")) { $pipes = []; @@ -1071,9 +1071,11 @@ class Pref_Prefs extends Handler_Protected { $proc = proc_open("git fetch -q origin -a && git log HEAD..origin/master --oneline", $descriptorspec, $pipes, $plugin_dir); if (is_resource($proc)) { - $rv["stdout"] = stream_get_contents($pipes[1]); - $rv["stderr"] = stream_get_contents($pipes[2]); - $rv["git_status"] = proc_close($proc); + $rv = [ + "stdout" => stream_get_contents($pipes[1]), + "stderr" => stream_get_contents($pipes[2]), + "git_status" => proc_close($proc), + ]; $rv["need_update"] = !empty($rv["stdout"]); } } diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js index 651e3f609323292723deeef96838eae14c75ece1..3f738aa9564da7652db00fa83f40d59ec884e085 100644 --- a/js/PrefHelpers.js +++ b/js/PrefHelpers.js @@ -697,28 +697,30 @@ const Helpers = { } else { reply.forEach((p) => { - if (p.rv.need_update) { - dialog.plugins_to_update.push(p.plugin); + if (p.rv) { + if (p.rv.need_update) { + dialog.plugins_to_update.push(p.plugin); - const update_button = dijit.getEnclosingWidget( - App.find(`*[data-update-btn-for-plugin="${p.plugin}"]`)); + const update_button = dijit.getEnclosingWidget( + App.find(`*[data-update-btn-for-plugin="${p.plugin}"]`)); - if (update_button) - update_button.domNode.show(); - } + if (update_button) + update_button.domNode.show(); + } - if (p.rv.need_update || p.rv.git_status != 0) { - container.innerHTML += - ` - <li><h3>${p.plugin}</h3> - ${p.rv.stderr ? `<pre class="small text-error pre-wrap">${p.rv.stderr}</pre>` : ''} - ${p.rv.stdout ? `<pre class="small text-success pre-wrap">${p.rv.stdout}</pre>` : ''} - <div class="small"> - ${p.rv.git_status ? App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", p.rv.git_status) : - App.FormFields.icon("check") + " " + __("Ready to update")} - </div> - </li> - ` + if (p.rv.need_update || p.rv.git_status != 0) { + container.innerHTML += + ` + <li><h3>${p.plugin}</h3> + ${p.rv.stderr ? `<pre class="small text-error pre-wrap">${p.rv.stderr}</pre>` : ''} + ${p.rv.stdout ? `<pre class="small text-success pre-wrap">${p.rv.stdout}</pre>` : ''} + <div class="small"> + ${p.rv.git_status ? App.FormFields.icon("error_outline") + " " + __("Exited with RC: %d").replace("%d", p.rv.git_status) : + App.FormFields.icon("check") + " " + __("Ready to update")} + </div> + </li> + ` + } } dialog.checkNextPlugin(); });