diff --git a/classes/api.php b/classes/api.php index a0ee773c1..31672575a 100755 --- a/classes/api.php +++ b/classes/api.php @@ -363,6 +363,7 @@ class API extends Handler { } $this->_wrap(self::STATUS_OK, $articles); + // @phpstan-ignore-next-line } else { $this->_wrap(self::STATUS_ERR, array("error" => self::E_INCORRECT_USAGE)); } diff --git a/classes/pref/prefs.php b/classes/pref/prefs.php index 7f986858f..de03b34dc 100644 --- a/classes/pref/prefs.php +++ b/classes/pref/prefs.php @@ -1185,15 +1185,18 @@ class Pref_Prefs extends Handler_Protected { function updateLocalPlugins() { if ($_SESSION["access_level"] >= 10) { - $plugin_name = $_REQUEST["name"] ?? ""; + $plugins = explode(",", $_REQUEST["plugins"] ?? ""); # we're in classes/pref/ $root_dir = dirname(dirname(__DIR__)); $rv = []; - if (!empty($plugin_name)) { - array_push($rv, ["plugin" => $plugin_name, "rv" => $this->_update_plugin($root_dir, $plugin_name)]); + if (count($plugins) > 0) { + foreach ($plugins as $plugin_name) { + array_push($rv, ["plugin" => $plugin_name, "rv" => $this->_update_plugin($root_dir, $plugin_name)]); + } + // @phpstan-ignore-next-line } else { $plugin_dirs = array_filter(glob("$root_dir/plugins.local/*"), "is_dir"); diff --git a/js/PrefHelpers.js b/js/PrefHelpers.js index 5450bd98c..d2f74d421 100644 --- a/js/PrefHelpers.js +++ b/js/PrefHelpers.js @@ -1,7 +1,7 @@ 'use strict'; /* eslint-disable no-new */ -/* global __, dijit, dojo, Tables, xhrPost, Notify, xhr, App, fox */ +/* global __, dijit, dojo, Tables, Notify, xhr, App, fox */ const Helpers = { AppPasswords: { @@ -327,6 +327,7 @@ const Helpers = { const dialog = new fox.SingleUseDialog({ title: __("Plugin Updater"), need_refresh: false, + plugins_to_update: [], onHide: function() { if (this.need_refresh) { Helpers.Prefs.refresh(); @@ -335,10 +336,12 @@ const Helpers = { performUpdate: function() { const container = dialog.domNode.querySelector(".update-results"); + console.log('updating', dialog.plugins_to_update); + container.innerHTML = `