aboutsummaryrefslogtreecommitdiff
path: root/app/views
AgeCommit message (Collapse)Author
2026-01-24Message for closed registration (#8462)Gravatar rupak
* Add closed msg field i18n fix * Display based on registration type * Save as FreshRSS_Context::systemConf()->closed_registration_message instead * Improve messages * Revert unrelated changes * make fix-all * Minor whitespace * Simplify logic * Fix invalid use of empty() and sympler syntax --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-20fix validator url update (#8436)Gravatar Tsung-Han Yu
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.
2026-01-10Fix space between 'By:' and the author name (#8422)Gravatar Rob Loach
* Fix space between 'By:' and the author name * Use a different approach than sprintf() * Revert "Use a different approach than sprintf()" This reverts commit 3ede55f000bb7ef5ed7c1d6ffd060139801838b7. * Apply a space between By: and the author name * Apply suggestion from @Alkarex Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-01-04Allow styling entries by category in User CSS (#8397)Gravatar Inverle
* Allow styling entries by category in User CSS Since we have `data-feed`, it is useful to have `data-category` too. Example of usage to hide titles in all entries that belong to a specific category ID: ```css [data-category="6"] { .title { display: none !important } .summary { position: relative; bottom: 2rem; } } ``` * Add `data-link` to entries in `reader.phtml`
2026-01-03Fix unwanted expansion of user queries in some cases (#8395)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/8378
2025-12-21Improve configuration checks (#8334)Gravatar Alexandre Alapetite
Add a distinction between recommended and required extensions. Add check for recommended php-intl extension as follow-up of https://github.com/FreshRSS/FreshRSS/pull/8329#issuecomment-3677686581 Improve related checks such as ZIP. Reduce duplicated translations and tests.
2025-12-17Allow negative category sort numbers (#8330)Gravatar stag
Closes https://github.com/FreshRSS/FreshRSS/issues/8304 Remove the min=1 attribute so negative numbers can be used to force categories to the bottom
2025-12-17Rework encoding of search filters (#8324)Gravatar Alexandre Alapetite
Rework: * https://github.com/FreshRSS/FreshRSS/pull/8222 now that we have: * https://github.com/FreshRSS/FreshRSS/pull/8293 Follow-up of: * https://github.com/FreshRSS/FreshRSS/pull/8311 * More simplification * Deprecate getRawInput
2025-12-13New links in transitions and jump to next transition (#8294)Gravatar Alexandre Alapetite
Easier to explain graphically: <img width="408" height="266" alt="image" src="https://github.com/user-attachments/assets/0e3724a1-155b-4a87-89b3-cfe8a18cb100" /> The jump to next section ⏭ works when the sorting criterion is a date. Need https://github.com/FreshRSS/FreshRSS/pull/8293
2025-12-08Minor refactor `<img class="icon">` -> `_i('...')` (#8297)Gravatar Inverle
2025-12-08Keep scroll state of page when closing the slider (#8295)Gravatar Inverle
2025-12-04Move unsafe autologin to an extension (#7958)Gravatar Inverle
Completes the following TODO https://github.com/FreshRSS/FreshRSS/issues/7923: https://github.com/FreshRSS/FreshRSS/blob/de624dc8ce63ec819c61216d9d44f828841c293e/app/Controllers/authController.php#L105 Extension PR: https://github.com/FreshRSS/Extensions/pull/364 https://github.com/FreshRSS/Extensions/tree/main/xExtension-UnsafeAutologin
2025-12-04Scaling of user statistics (#8277)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/8268 To better support user management on FreshRSS instance with many users. SQL speed improved. On a reduced test with 5 users, including some large accounts (PostgreSQL on a very tiny and slow server), improving from ~2.3s to ~1.8s, which gives ~20% speed improvement. Then tested with 1000 users, with only the default feed (on my old desktop computer): ```sh for i in {1..1000}; do ./cli/create-user.php --user=freshrss$i --password=freshrss; done app/actualize_script.php cli/access-permissions.sh ``` SQLite: ```console $ time cli/user-info.php | wc -l 1001 real 0m1.366s user 0m0.908s sys 0m0.475s ``` PostgreSQL: ```console $ time cli/user-info.php | wc -l 1001 real 0m28.498s user 0m12.137s sys 0m2.217s ``` MariaDB: ```console # time ./cli/user-info.php | wc -l 1001 real 0m49.485s user 0m1.276s sys 0m2.258s ``` Yes, SQLite is much faster - not a surprise for such use-cases, where the TCP connection is not re-used. I have added some CLI options to disable some statistics: ```sh cli/user-info.php --no-db-size --no-db-counts ``` For the Web UI, I have disabled detailed user statistics if it takes too long, and retrieve missing user statistics asynchronously via JavaScript. Lazy loading of the user details based on IntersectionObserver, with maximum 10 requests in parallel. Web UI tested on 1000 users as well. Checked with SeaMonkey.
2025-12-04Implement button for toggling sidebar on all views (#8201)Gravatar Inverle
* Implement button for toggling sidebar on all views Closes https://github.com/FreshRSS/FreshRSS/issues/7673, https://github.com/FreshRSS/FreshRSS/issues/7100, https://github.com/FreshRSS/FreshRSS/issues/6119, https://github.com/FreshRSS/FreshRSS/issues/5338, https://github.com/FreshRSS/FreshRSS/issues/2792, https://github.com/FreshRSS/FreshRSS/issues/4224, https://github.com/FreshRSS/FreshRSS/issues/4136 https://github.com/user-attachments/assets/0629e465-6450-440e-b38b-430e9ff73ef9 Keyboard shortcut for doing the same: <kbd>t</kbd> * Partially fix other views Repartition page looks broken on Swage * Correction `close-aside` wasn't meant to be removed * i18n(conf): fr Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * make fix-all * Fix settings slider not opening in reader view * make readme --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-11-24OPML export/import of unicity criteria (#8243)Gravatar Alexandre Alapetite
Found during https://github.com/FreshRSS/FreshRSS/discussions/8242#discussioncomment-15052838
2025-11-11Fix duplicate semicolon in entry_header (#8203)Gravatar András Marczinkó
* Fix duplicate semicolon in entry_header * Fix some more redundant syntax Co-authored-by: Inverle <inverle@proton.me> --------- Co-authored-by: Inverle <inverle@proton.me>
2025-11-11Housekeeping lib_rss.php (#8193)Gravatar Alexandre Alapetite
* Housekeeping lib_rss.php `lib_rss.php` had become much too large, especially after https://github.com/FreshRSS/FreshRSS/pull/7924 Moved most functions to other places. Mostly no change of code otherwise (see comments). * Extension: composer run-script phpstan-third-party
2025-11-08less margin - wrapper div deleted (#8196)Gravatar maTh
Follow up https://github.com/FreshRSS/FreshRSS/pull/8190 and https://github.com/FreshRSS/FreshRSS/pull/8152 before: <img width="1090" height="449" alt="grafik" src="https://github.com/user-attachments/assets/ee6a54a2-3602-4f2c-8eb2-cb186287e245" /> After: <img width="907" height="452" alt="grafik" src="https://github.com/user-attachments/assets/3a3066e5-90e1-4b65-a1c4-18964494f644" />
2025-11-06Replace arrow navigation in theme switcher with `<select>` (#8190)Gravatar Inverle
Follow-up (or replacement) of https://github.com/FreshRSS/FreshRSS/pull/8167 ![gif](https://github.com/user-attachments/assets/96cdeaff-36bc-4d0b-9b75-97bd7ff78ba1)
2025-11-04Better transitions between groups of articles (#8174)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/7520 fix https://github.com/FreshRSS/FreshRSS/issues/8168 fix https://github.com/FreshRSS/FreshRSS/discussions/8172
2025-11-03Update manage.phtml (#8185)Gravatar maTh
I think that the placeholder for new user names should not be "demo". An empty field is good enough IMHO <img width="825" height="533" alt="grafik" src="https://github.com/user-attachments/assets/e2bde73b-4472-4bf7-ac4e-81138f3d9a3f" /> <img width="866" height="516" alt="grafik" src="https://github.com/user-attachments/assets/f7586470-d0e8-4962-9e5f-5aa6912670d3" />
2025-11-02[sqlite export] add username and timestamp (#8169)Gravatar scollovati
* [sqlite export] add username and timestamp add username and timestamp to sqlite user export, similar to the ZIP export. Useful for archiving purposes. * Fix case of backups and other DB types https://github.com/FreshRSS/FreshRSS/pull/8169#issuecomment-3476079108 --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-11-01Fix/improve <textarea> (#8171)Gravatar maTh
## Feed configuration slider: ### Before: <img width="747" height="346" alt="grafik" src="https://github.com/user-attachments/assets/37056ef8-1163-48d1-a3dd-99e745418b2d" /> ### After: <img width="743" height="473" alt="grafik" src="https://github.com/user-attachments/assets/388a0ef6-633e-43ee-8ea5-5cbe7b40e6e4" /> ## CustomCSS, CustomJS extensions ### Before: <img width="762" height="504" alt="grafik" src="https://github.com/user-attachments/assets/279801fb-06a7-477a-81e7-c681087595a5" /> ### After: <img width="767" height="922" alt="grafik" src="https://github.com/user-attachments/assets/ca4cf304-03c7-4028-89d0-1c3094086176" /> And cleaning some CSS * UserCSS+JS: w100 h50 * clean textarea width height * feed config slider * Update base.rtl.css * fix class="valid-json" * padding + vertical-align * fix ansum mapco
2025-10-28Improve theme slider (#8152)Gravatar maTh
Ref https://github.com/FreshRSS/FreshRSS/pull/8149 Ref https://github.com/FreshRSS/FreshRSS/issues/6577 Before <img width="969" height="582" alt="grafik" src="https://github.com/user-attachments/assets/5e1e5e9a-31de-4327-a639-6327d602cf8a" /> After Buttons as navigation elements. Not it is crystal clear that the themes can be changed. The theme counter is a bit more prominent to show the big amount of shipped themes. <img width="1041" height="575" alt="grafik" src="https://github.com/user-attachments/assets/b498e74f-1284-40ad-b871-41ce238a49ff" />
2025-10-26OPML export/import frss:priority (#8158)Gravatar Alexandre Alapetite
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/7583
2025-10-22Add option to apply filter actions to existing articles (#7959)Gravatar Tommaso Ferrari
* Add option to apply filter actions to existing articles * make fix-all * Fixes * Another approach with preview New approach: https://github.com/FreshRSS/FreshRSS/pull/7959/commits/20479475c90ac954b991b3703c3cc76c16aa2d5c <img width="666" height="202" alt="image" src="https://github.com/user-attachments/assets/bb68ede4-60c8-4e0c-9317-c5ed7a6ad7df" /> Additional improvements: * Also implemented at category level, and at global level * Also implemented for favourites at global level Shortcomings: * Does not always work reliably with advanced regex, since the DB's flavour is not necessarily the same than PHP's Related: https://github.com/FreshRSS/FreshRSS/pull/8141 * make fix-all --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-10-21Add support for extension compatibility (#8081)Gravatar Alexis Degrugillier
The compatibility does support only a minimum version of FreshRSS. If we need something a bit more clever in the future, it is possible to handle a rule with a bit more complexity. See https://github.com/FreshRSS/FreshRSS/issues/5903 * Update app/Controllers/extensionController.php Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> * Update app/i18n/pl/admin.php Co-authored-by: Inverle <inverle@proton.me> * Minor move phpstan-type --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Inverle <inverle@proton.me>
2025-10-16Add to search UI the user modification date (#8122)Gravatar Alexandre Alapetite
* Add to search UI the user modification date Follow-up of: * https://github.com/FreshRSS/FreshRSS/pull/8103 * https://github.com/FreshRSS/FreshRSS/pull/8093 * Easier UI to cancel filtering by date * Add blank <option> to ease deselection of <select>
2025-10-15Implement search form (#8103)Gravatar Alexandre Alapetite
* Add UI for advanced search To help users with the seach operators. Obviously not as powerful as a manually-written search query. Lack in particular negation and logical *and* for now, but I might try to do something about it. <img width="939" height="1438" alt="image" src="https://github.com/user-attachments/assets/0bcad39b-eff3-4f44-876b-a2552af2af00" /> * Consistency: allow multiple user queries like S:1,2 * Fix user query and add tests
2025-10-14Option to show user labels instead of tags in RSS share (#8112)Gravatar Alexandre Alapetite
* Option to show user labels instead of tags in RSS share fix https://github.com/FreshRSS/FreshRSS/discussions/8108#discussioncomment-14668813 <img width="711" height="182" alt="image" src="https://github.com/user-attachments/assets/8effb2cd-fffb-4f00-b628-54e963e8b2dc" />
2025-10-14New stats overview of dates with most unread articles (#8089)Gravatar Alexandre Alapetite
New view with direct links to dates with most unread articles: <img width="734" height="581" alt="image" src="https://github.com/user-attachments/assets/159a39b3-3a06-4ae9-9cc0-62ae36d9db9c" />
2025-10-14Fix drag&drop of user query losing information (#8113)Gravatar Alexandre Alapetite
* Fix drag&drop of user query losing information Information about RSS sharing was lost after a drag&drop * Fix related type cast
2025-10-02Add a new hook in the UI (#8054)Gravatar Alexis Degrugillier
* Add a new hook in the UI The new hook allows extension to add their own tool bar to navigate between entries. For instance, if the user wants less or more buttons that what's available by default. See #7912 See #7913 * add link data to ease navigation
2025-10-01API optimisation: more streaming of outputs (#8041)Gravatar Alexandre Alapetite
* API optimisation: more streaming of outputs I spotted a memory issue when testing https://github.com/FreshRSS/FreshRSS/pull/7714 Attempt to stream results more, instead of keeping too much in memory. Could be further improved. * Apply suggestions from code review Co-authored-by: Alexis Degrugillier <aledeg@users.noreply.github.com> * Minor whitespace JSON formatting --------- Co-authored-by: Alexis Degrugillier <aledeg@users.noreply.github.com>
2025-10-01configurable notification timeout (#7942)Gravatar maTh
Ref #7931 Ref #5466 Ref #6409 added configuration in "Display" <img width="636" height="167" alt="grafik" src="https://github.com/user-attachments/assets/7bbc9f26-d91b-4dd2-b715-1d3f9b7a9ad3" /> * i18n: fr * Update app/i18n/pl/conf.php Co-authored-by: Inverle <inverle@proton.me> * make fix-all * max() * Minor whitespace (I am not a fan of excessive vertical indenting) --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Inverle <inverle@proton.me>
2025-09-30Add hook enums (#8036)Gravatar Alexis Degrugillier
- add an enum to handle hook types (enum are available since PHP 8.1) - change hook calls from string value to enum value
2025-09-30Fix autocomplete issues in change password form (#7812)Gravatar Inverle
## Screenshots <details> <summary>Before</summary> <img width="773" height="652" alt="image" src="https://github.com/user-attachments/assets/89a0e58c-8c4a-41ff-b5d6-3e916079d563" /> </details> <details> <summary>After</summary> <img width="1006" height="646" alt="image" src="https://github.com/user-attachments/assets/f4575103-7365-4870-a170-2742bf10eb27" /> </details> This is an example on Firefox, where the `Master authentication token` field was incorrectly being autofilled. Red borders are indicating that the fields are required. ## List of changes * `required="required"` is now being added to the password fields if the section is open * The `challenge` field is being added if section is open instead of when at least one of the password fields isn't empty due to autocomplete * Added `autocomplete="new-password"` on fields that shouldn't be autocompleted * Unfortunately Chrome requires a workaround with CSS * Not tested on Safari yet * User will be redirected to profile page after successfully changing their password instead of index page ## How to test Autocomplete related changes should be tested on a HTTPS page with saved credentials for FreshRSS
2025-09-30Add new visibility priority *Show in its feed* (#7972)Gravatar Alexandre Alapetite
* Add new visibility priority *Show in its feed* fix https://github.com/FreshRSS/FreshRSS/pull/7970#issuecomment-3293917428 (you can't directly filter a hidden feed, it just shows a 404 page) And add a new visibility *Show in its feed* to show the feed in the list but not its articles. Ensure that visibility *hidden* is not shown to API. * TODO for later * Update app/i18n/pl/sub.php Co-authored-by: Inverle <inverle@proton.me>
2025-09-29Fix more CSRFs (#8035)Gravatar Inverle
Follow-up of #8000 Some were still missed in `feedController`. even had comments but no check: https://github.com/FreshRSS/FreshRSS/blob/0d463b67bdade2e896b7fa74595950eeaadd55fe/app/Controllers/feedController.php#L1053-L1055 https://github.com/FreshRSS/FreshRSS/blob/0d463b67bdade2e896b7fa74595950eeaadd55fe/app/Controllers/feedController.php#L374-L376
2025-09-25fix: anonym. mode: Do not show config button in sharing menu (#8012)Gravatar maTh
* Ref #8001 Do not show the config button in the article sharing menu if it is in the anonym. mode * Minor whitespace reduction Because it is a section that is used many times --------- Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-09-25Fix: sharing button in top line when 0 entries (#8010)Gravatar maTh
ref #8001 Changes proposed in this pull request: - count entries, do not show share button when 0 sharing services How to test the feature manually: 1. having 0 sharing services 2. enable the sharing button in top line (settings -> display> 3. go to normal view -> sharing button should not be displayed in the article entry 4. add 1 sharing service 5. normal view -> sharing button is be displayed
2025-09-17Keep sort and order after marking as read (#7974)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/7867
2025-09-15Clarify: Visibility hidden vs. archived (#7970)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/7887 We have two concepts: how much a feed is shown or not (controlled by priority), and how often a feed is refreshed (or not, in which case it is archived). This PR removes the wording *Archived* from the *visibility* parameter, since this is not what it does.
2025-09-15Minor RSS output whitespace reduction (#7969)Gravatar Alexandre Alapetite
fix https://github.com/FreshRSS/FreshRSS/issues/7968
2025-09-15Fix another user self-delete regression (#7877)Gravatar Inverle
Regression from #7763 Earlier regression which was fixed before #7626 In addition: * get rid of `data-toggle` (refactor) * show invalid login message if deleting account and entered incorrect password instead of redirect to 403 * remove unused reference to `r` parameter * `forgetOpenCategories()` on login not on any crypto form
2025-09-12Minor CSS underline fix in label management (#7952)Gravatar Inverle
Before <img width="255" height="159" alt="image" src="https://github.com/user-attachments/assets/9b80659c-c646-47de-8436-45aa38afd465" /> After <img width="238" height="161" alt="image" src="https://github.com/user-attachments/assets/27dcb572-5935-405b-9cfc-33eb95d78bf0" /> (ignore CSS in branch name, it's just HTML changes - although this could've been solved with `display: inline-block` too)
2025-09-11Minor update syntax echo (#7941)Gravatar Alexandre Alapetite
* Minor update syntax echo Follow-up of https://github.com/FreshRSS/FreshRSS/pull/7939 * Fix layout Whitespace optimisation needed to avoid style glitch
2025-09-10Rewrite PHP opening tags (#7939)Gravatar Alexis Degrugillier
This allows to remove the use of `echo` and be consistent through out the file. Some empty PHP tags where removed as well.
2025-09-03refactor value setting for javascript variables (#7906)Gravatar Alexis Degrugillier
When retrieving an unset shortcut value, the error is not silenced but instead we use the null-coalesce operator to define a default value. See #7290
2025-09-01fix: add default values on stat processing (#7891)Gravatar Alexis Degrugillier
Before, there was an error when retrieving stats for a user without feeds. Now, there are default values to display empty stats instead of an exception. See #7884 Closes #7884 Changes proposed in this pull request: - add default values when retrieving stat data How to test the feature manually: 1. create a new user 2. connect as the new user 3. display stats 4. validate that there is no errors