1255 Commits

Author SHA1 Message Date
Greg
2d4c8bdf25
Make the 'Recently read' max age configurable via preference (#236)
* Make the 'Recently read' max age configurable via preference.

Also: don't attempt to filter by unread articles when using the 'Unread' view mode in the 'Recently read' feed.

* Rebase translations.
2026-01-17 11:54:09 -06:00
supahgreg
f15bec24d7
Support '<' and '>' with filters. 2025-12-11 21:30:40 +00:00
supahgreg
90a52c958b
Replace 'Display article URL' with 'Copy article URL'. 2025-11-28 21:04:37 +00:00
Greg
8d80ee5200
Merge pull request #179 from LaurentGH/notify-parameter
Notify.progress() and Notify.error() parameter was useless
2025-11-20 10:45:29 -06:00
LaurentGH
dfc42cf777
In Notify.info(), progress() and error() add a default value parameter
Instead of setting the parameter in the first line inside the function, add a default value for the keep parameter.
2025-11-20 17:44:26 +01:00
LaurentGH
456eee65f4
Fix ESLint message about == instead of ===
ESLint told me "Expected '===' and instead saw '=='", so fix this.
2025-11-20 14:22:09 +01:00
LaurentGH
7e89408da0
Automatically close the "Opening debugger" message
In the Preferences page, in the Feeds tab, in "Feeds with errors" page, one can select a feed, and click on the button "Debug selected feeds".

This opens a new web browser tab, and also adds a yellow message "Opening debugger for selected feeds...". However, when we come back to the Preferences page, we have to manually close this yellow message, which becomes useless.

This patch automatically closes the message after 5 seconds, by setting the second parameter of Notify.progress() to false.

This patch also opens the confirm() only when there are several selected feeds. There is not need for a confirmation for one feed only.
2025-11-20 14:08:28 +01:00
LaurentGH
3159887deb
Notify.progress() and Notify.error() parameter was useless
The second parameter "keep" of Notify.progress() and Notify.error() indicates if the windows is kept open or automatically closed.

The developer intent was to have keep=true when unset.

However, the code contained:
  keep = keep || true;
If keep was unset the result was true, but if keep was false the result was also true.

If all cases (undef, false, true), this parameter was thus true, and it was impossible to automatically close this window.

It can be noted that a "grep -rs 'Notify.progress.*true' " finds 27 places where the second parameter true could be removed because this is the default value.
2025-11-20 13:48:12 +01:00
supahgreg
dab918a426
Switch links from the GitHub project wiki to 'tt-rss.org'. 2025-11-19 02:06:54 +00:00
supahgreg
17c7a4b38b
Also fix default theme element placement with the utility helper.
Similar to c0f451264c7a7b72fe0988bba2febb3b7ce66810.

Related to tt-rss/tt-rss#140.
2025-11-16 03:33:14 +00:00
supahgreg
c0f451264c
Place the default theme element before other style-related elements.
This is needed to provide consistency in CSS rule evaluation between default and user-specified themes.
Before this change 'default' would result in the base theme applying after other style elements-- whereas a user-selected base theme would (correctly) get applied first.

Closes tt-rss/tt-rss#140.
2025-11-16 03:26:13 +00:00
supahgreg
2fdbe2b686
Only skip hotkey handling for text input types. 2025-11-09 02:03:57 +00:00
LaurentGH
3b7bf31111
Move the new Open original article menu upper for consistency with the per-article menu 2025-11-08 14:35:27 +01:00
LaurentGH
8ed318c179
In the Selection menu add Open original article 2025-11-08 06:40:21 +01:00
LaurentGH
d466d06828
Check for updates after one minute and then every hour
If someone has only a few feeds to follow, his tt-rss instance may only be used 10 minutes a day. Previously the check for update was done only after one hour. So this people with small usage might never see the update icon.

Now, a check for updates is done after one minute, and then every hour?
2025-11-06 13:58:02 +01:00
LaurentGH
4da5e11653
Error message when cancelling a label creation
When "Create label" menu is clicked, a popup asks for the label name. If the Cancel button is immediately entered, an error message is displayed: TypeError: can't access property "trim", caption is null.

Indeed, the JavaScript prompt() message returns null when Cancel is pressed. The test "caption !== undefined" is thus true, and the trim() is tried on null, which fails.

The fix is to only check for "caption" or "caption != null".
2025-11-05 17:07:35 +01:00
LaurentGH
1a1cec689c
Replace e-mail and mail by email 2025-11-04 17:20:26 +01:00
supahgreg
39db785a3a
Make plugin updates a separate icon and link to relevant content. 2025-11-02 03:23:54 +00:00
supahgreg
e68bc2c32d
Clean up frontend escaping. 2025-10-21 15:57:03 -05:00
supahgreg
1471d1440a
Ensure some more values get properly escaped. 2025-10-21 14:33:23 -05:00
supahgreg
c8b80c4041
Improve handling of URLs on the frontend. 2025-10-21 14:33:20 -05:00
supahgreg
d96e85c695
Fix a scope issue resulting from the Dojo 1.17 upgrade. 2025-10-21 14:32:10 -05:00
supahgreg
ec0a83e90e
Remove an unused var in CommonDialogs. 2025-10-18 20:39:22 +00:00
supahgreg
84697e4b66
Reduce JS logging, tweak some levels. 2025-10-18 20:32:20 +00:00
supahgreg
f382d2ac89
Gracefully handle a feed icon failing to load. 2025-10-16 17:38:12 +00:00
supahgreg
a47a45d300
Add back App.byId() until it can be replaced in official plugins 2025-10-16 14:56:42 +00:00
supahgreg
e29e0fef7b
Add back 'App.find()' and 'App.findAll()' until official plugins can all be updated. 2025-10-16 14:52:31 +00:00
supahgreg
6223abef08
minor: reduce some duplication, add a comment back 2025-10-15 00:11:28 +00:00
supahgreg
92438716ad
minor: remove classes better in 'Article.setScore()' 2025-10-14 23:41:48 +00:00
supahgreg
3ff3c605b4
Remove 'App.find()', which was essentially an alias of 'document.querySelector()'. 2025-10-14 23:26:46 +00:00
supahgreg
f85559735b
Remove 'App.byId()', which was essentially an alias of 'document.getElementById()'. 2025-10-14 23:23:01 +00:00
supahgreg
6bd52b28c2
Remove 'App.findAll()', which was essentially an alias of 'document.querySelectorAll()'. 2025-10-14 23:18:13 +00:00
supahgreg
6d36197247
Remove various Element and Array prototype extensions (and similar). 2025-10-14 22:43:09 +00:00
supahgreg
e0e0a0fab0
Fix 'App.select_tag()' again.
Not enough coffee.
2025-10-14 16:13:55 +00:00
supahgreg
dc8da35492
Fix default selection for 'App.select_tag()' and 'App.select_hash()'. 2025-10-14 16:02:52 +00:00
supahgreg
8b46ab31a9
Fix some more issues related to ESLint 'eqeqeq' changes (again). 2025-10-14 04:36:36 +00:00
supahgreg
98f0035a95
minor: fix a labels issue introduced in 362e2dc28c9d28bc7644df6694b4de78a116da37 2025-10-14 04:03:24 +00:00
supahgreg
362e2dc28c
Fix some more issues related to ESLint 'eqeqeq' changes. 2025-10-14 03:29:37 +00:00
supahgreg
7d6d321441
Address remaining ESLint 'no-undef' and 'no-unused-vars' occurrences.
* https://eslint.org/docs/latest/rules/no-undef
* https://eslint.org/docs/latest/rules/no-unused-vars
2025-10-13 02:54:36 +00:00
supahgreg
54b69728d0
Fix 'Feed.setActive()' allowing a string 'id'.
This was causing an issue with comparisons elsewhere (e.g. 'Headlines.onLoaded()').
2025-10-12 22:55:43 +00:00
supahgreg
47848d0198
Fix various ESLint 'no-undef' rule instances.
https://eslint.org/docs/latest/rules/no-undef
2025-10-12 22:32:55 +00:00
supahgreg
cde120b3d7
Clean up unnecessary eslint-disable directives (per ESLint). 2025-10-12 22:27:18 +00:00
supahgreg
7211d34684
Add a workaround+note for a FeedTree feed item's 'error' being '[]'.
The backend is sending 'error' as a string (or undefined for cats).
2025-10-12 22:20:13 +00:00
supahgreg
360c552da4
Address rule 'no-redeclare' for 'dojo' and 'dijit' (defined as globals in 'eslint.config.js').
Also take care of 2 'no-prototype-builtins' and a 'no-useless-escape'.

* https://eslint.org/docs/latest/rules/no-redeclare
* https://eslint.org/docs/latest/rules/no-prototype-builtins
* https://eslint.org/docs/latest/rules/no-useless-escape
2025-10-12 21:48:10 +00:00
supahgreg
d442079a72
Address ESLint rule 'no-prototype-builtins'.
https://eslint.org/docs/latest/rules/no-prototype-builtins
2025-10-12 21:38:59 +00:00
supahgreg
39182a76e4
Address ESLint rule 'eqeqeq'.
https://eslint.org/docs/latest/rules/eqeqeq
2025-10-12 21:34:29 +00:00
supahgreg
bb08b0acd5
Improve 'App.getSelectedText()'.
This also drops 'String.prototype.stripTags', which is no longer used.
2025-10-10 23:30:34 +00:00
supahgreg
b888fa1032
Fix a potential double-unescaping issue, tweak 'App.escapeHtml()'. 2025-10-10 22:39:47 +00:00
supahgreg
a7d5566aa9
Switch links to the 'tt-rss' GitHub organization. 2025-10-06 19:02:28 +00:00
supahgreg
ec367b23f4
Switch from 'tt-rss-web-static' links to wiki links. 2025-10-05 20:18:56 +00:00