summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-28 21:50:05 +0300
committerAndrew Dolgov <[email protected]>2021-02-28 21:50:05 +0300
commitb05d4e3d9ff2803b28dd68d807b57500f8c3078f (patch)
treeba9efc4fc9fe5e773a4f5fc8563058aa95a1e638
parentbf02afed45d23ebb794434d95b2b6b52eed234ee (diff)
speed up plugin updating a bit, fix some phpstan warnings
-rwxr-xr-xclasses/api.php1
-rw-r--r--classes/pref/prefs.php9
-rw-r--r--js/PrefHelpers.js13
-rwxr-xr-xupdate.php2
4 files changed, 18 insertions, 7 deletions
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 = `<li class='text-center'>${__("Updating, please wait...")}</li>`;
let enable_update_btn = false;
- xhr.json("backend.php", {op: "pref-prefs", method: "updateLocalPlugins", name: name}, (reply) => {
+ xhr.json("backend.php", {op: "pref-prefs", method: "updateLocalPlugins", plugins: dialog.plugins_to_update.join(",")}, (reply) => {
if (!reply) {
container.innerHTML = `<li class='text-center text-error'>${__("Operation failed: check event log.")}</li>`;
@@ -392,9 +395,13 @@ const Helpers = {
} else {
container.innerHTML = "";
+ dialog.plugins_to_update = [];
+
reply.forEach((p) => {
- if (p.rv.s == 0)
+ if (p.rv.s == 0) {
enable_update_btn = true;
+ dialog.plugins_to_update.push(p.plugin);
+ }
container.innerHTML +=
`
diff --git a/update.php b/update.php
index aab84bfdb..41b052f6e 100755
--- a/update.php
+++ b/update.php
@@ -253,7 +253,7 @@
RSSUtils::update_daemon_common(isset($options["pidlock"]) ? 50 : Config::get(Config::DAEMON_FEED_LIMIT), $options);
- if (!isset($options["pidlock"]) || $options["task"] == 0)
+ if (!isset($options["pidlock"]) || $options["task"] == "0")
RSSUtils::housekeeping_common();
PluginHost::getInstance()->run_hooks(PluginHost::HOOK_UPDATE_TASK, $options);