Redirect after saving user CSS/JS so changes apply immediately (#9006)

Saving custom CSS/JS rendered the response from the pre-save state (no
Post/Redirect/Get), so the stylesheet cache-busting URL was stale and
the change only appeared after a manual reload, which reads as erratic
behavior. Redirect back to the extension config after save, matching
the pattern used elsewhere in the codebase.

Fixes #8795

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
TowyTowy
2026-07-09 16:37:49 +02:00
committed by GitHub
parent 143cb09418
commit f7c4fbeeed
4 changed files with 12 additions and 2 deletions

View File

@@ -25,6 +25,11 @@ final class UserCSSExtension extends Minz_Extension {
$css_rules = Minz_Request::paramString('css-rules', plaintext: true);
$this->saveFile(self::FILENAME, $css_rules);
FreshRSS_UserDAO::touch();
// Redirect (Post/Redirect/Get) so the next page is built after the save,
// with a fresh cache-busting URL for the updated stylesheet
Minz_Request::good(_t('feedback.conf.updated'), [
'c' => 'extension', 'a' => 'configure', 'params' => ['e' => $this->getName()],
]);
}
$this->css_rules = '';

View File

@@ -2,7 +2,7 @@
"name": "User CSS",
"author": "hkcomori, Marien Fressinaud",
"description": "Give possibility to overwrite the CSS with a user-specific rules.",
"version": "1.1.1",
"version": "1.1.2",
"entrypoint": "UserCSS",
"type": "user"
}

View File

@@ -29,6 +29,11 @@ final class UserJSExtension extends Minz_Extension {
$js_rules = Minz_Request::paramString('js-rules', plaintext: true);
$this->saveFile(self::FILENAME, $js_rules);
FreshRSS_UserDAO::touch();
// Redirect (Post/Redirect/Get) so the next page is built after the save,
// with a fresh cache-busting URL for the updated script
Minz_Request::good(_t('feedback.conf.updated'), [
'c' => 'extension', 'a' => 'configure', 'params' => ['e' => $this->getName()],
]);
}
$this->js_rules = '';

View File

@@ -2,7 +2,7 @@
"name": "User JS",
"author": "hkcomori, Frans de Jonge",
"description": "Apply user JS.",
"version": "1.1.2",
"version": "1.1.3",
"entrypoint": "UserJS",
"type": "user"
}