diff options
| author | 2026-01-21 03:00:39 +0800 | |
|---|---|---|
| committer | 2026-01-20 20:00:39 +0100 | |
| commit | 84604e0c641f2ede1e9f1becb70968400f7b4fb5 (patch) | |
| tree | 55d057423278a3917eaa37f2bc2e19b503ad9ced | |
| parent | 63379a6fc2fdf160e00595f7be66742138ba6ce1 (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.md | 1 | ||||
| -rw-r--r-- | app/views/feed/add.phtml | 2 | ||||
| -rw-r--r-- | app/views/helpers/feed/update.phtml | 2 | ||||
| -rw-r--r-- | p/scripts/extra.js | 9 |
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 { |
