aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Tsung-Han Yu <14802181+johan456789@users.noreply.github.com> 2026-01-21 03:00:39 +0800
committerGravatar GitHub <noreply@github.com> 2026-01-20 20:00:39 +0100
commit84604e0c641f2ede1e9f1becb70968400f7b4fb5 (patch)
tree55d057423278a3917eaa37f2bc2e19b503ad9ced
parent63379a6fc2fdf160e00595f7be66742138ba6ce1 (diff)
fix validator url update (#8436)
Closes https://github.com/FreshRSS/FreshRSS/issues/8435 Changes proposed in this pull request: - update validator links to use the same open-url handler with prefix + encoding - ensure the validator link reflects the current #url field value before opening - keep existing open-url behavior for other links unchanged How to test the feature manually: 1. Open feed edit (or add feed) form. 2. Change the feed URL in the URL field. 3. Click “Check the validity of the feed” and verify it opens the validator with the updated URL.
-rw-r--r--CREDITS.md1
-rw-r--r--app/views/feed/add.phtml2
-rw-r--r--app/views/helpers/feed/update.phtml2
-rw-r--r--p/scripts/extra.js9
4 files changed, 9 insertions, 5 deletions
diff --git a/CREDITS.md b/CREDITS.md
index 5f73f7399..11d4168ca 100644
--- a/CREDITS.md
+++ b/CREDITS.md
@@ -289,6 +289,7 @@ People are sorted by name so please keep this order.
* [tonitonae](https://github.com/tonitonae): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tonitonae)
* [Troy Engel](https://github.com/troyengel): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:troyengel)
* [TryAllTheThings](https://github.com/tryallthethings): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:tryallthethings)
+* [Tsung-Han Yu](https://github.com/johan456789): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:johan456789), [Web](https://tsunghanyu.com/)
* [Twilek-de](https://github.com/Twilek-de): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Twilek-de)
* [Uncovery](https://github.com/uncovery): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:uncovery)
* [upskaling](https://github.com/upskaling): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:upskaling)
diff --git a/app/views/feed/add.phtml b/app/views/feed/add.phtml
index a30ce19a1..1fd659688 100644
--- a/app/views/feed/add.phtml
+++ b/app/views/feed/add.phtml
@@ -50,7 +50,7 @@
<a class="btn open-url" target="_blank" rel="noreferrer" href="<?= $this->feed->url() ?>" data-input="url" title="<?= _t('gen.action.open_url') ?>"><?= _i('link') ?></a>
</div>
<br />
- <a class="btn" target="_blank" rel="noreferrer" href="https://validator.w3.org/feed/check.cgi?url=<?= $this->feed->url() ?>"><?= _t('sub.feed.validator') ?></a>
+ <a class="btn open-url" target="_blank" rel="noreferrer" data-input="url" data-prefix="https://validator.w3.org/feed/check.cgi?url=" data-encode="1" href="https://validator.w3.org/feed/check.cgi?url=<?= $this->feed->url() ?>"><?= _t('sub.feed.validator') ?></a>
</div>
</div>
<div class="form-group">
diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml
index 3cdeb3f35..001b88c1f 100644
--- a/app/views/helpers/feed/update.phtml
+++ b/app/views/helpers/feed/update.phtml
@@ -95,7 +95,7 @@
<input type="url" name="url" id="url" value="<?= $this->feed->url() ?>" required="required" />
<a class="btn open-url" target="_blank" rel="noreferrer" href="<?= $this->feed->url() ?>" data-input="url" title="<?= _t('gen.action.open_url') ?>"><?= _i('link') ?></a>
</div>
- <a class="btn" target="_blank" rel="noreferrer" href="https://validator.w3.org/feed/check.cgi?url=<?=
+ <a class="btn open-url" target="_blank" rel="noreferrer" data-input="url" data-prefix="https://validator.w3.org/feed/check.cgi?url=" data-encode="1" href="https://validator.w3.org/feed/check.cgi?url=<?=
rawurlencode(htmlspecialchars_decode($this->feed->url(), ENT_QUOTES)) ?>"><?= _t('sub.feed.validator') ?></a>
</div>
</div>
diff --git a/p/scripts/extra.js b/p/scripts/extra.js
index 6f896f959..43bbd89f5 100644
--- a/p/scripts/extra.js
+++ b/p/scripts/extra.js
@@ -395,11 +395,14 @@ function close_slider_listener(ev) {
}
// </slider>
-// overwrites the href attribute from the url input
+// updates href from the input value, with optional prefix/encoding
function updateHref(ev) {
const urlField = document.getElementById(this.getAttribute('data-input'));
- const url = urlField.value;
- if (url.length > 0) {
+ const rawUrl = urlField.value;
+ const prefix = this.getAttribute('data-prefix') || '';
+ const shouldEncode = this.getAttribute('data-encode') === '1';
+ const url = prefix + (shouldEncode ? encodeURIComponent(rawUrl) : rawUrl);
+ if (rawUrl.length > 0) {
this.href = url;
return true;
} else {