Commit Graph

7003 Commits

Author SHA1 Message Date
Alexandre Alapetite
b04104fd95 Bump SimplePie to 1.9.0 (#7955)
Main change is https://github.com/simplepie/simplepie/pull/937 (PHP 8.5: Conditionally call deprecated functions)

P.S. a sync with SimplePie upstream was already done recently, hence the limited changes:
* https://github.com/FreshRSS/FreshRSS/pull/7775
2025-09-13 00:19:31 +02:00
Inverle
0833591131 Fix JS error when navigating to last article with keyboard (#7957)
This error would print in the console if navigating to last article with <kbd>J</kbd> or <kbd>K</kbd> key:

<img width="836" height="173" alt="image" src="https://github.com/user-attachments/assets/0ae88d1c-26eb-4ebe-8d15-4bf03c24cef6" />

---

To reproduce the bug:
<ol>
<li>Select unread + read view, while having all articles marked as read</li>
<li>Mark two as unread and go to unread only view</li>
<li>Navigate with either <kbd>J</kbd> or <kbd>K</kbd> until you go past the last article or before first article</li>
<li>See error in console and no navigation with <code>first_feed()</code> or <code>last_feed()</code></li>
</ol>

note: I'm not sure if the fix is what the expected behavior is supposed to be
2025-09-13 00:15:03 +02:00
Inverle
8a0436ede2 Minor CSS underline fix in label management (#7952)
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-12 08:14:46 +02:00
Alexandre Alapetite
8bd9bd95d8 Minor update syntax echo (#7941)
* 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-11 21:19:31 +02:00
Alexandre Alapetite
c8da217e87 Docker healthcheck (#7945)
* Docker healthcheck
fix https://github.com/FreshRSS/FreshRSS/issues/7377

* Use echo for non-CLI error

* curl_close is deprecated

* Connection: close

* Update cli/health.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

---------

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2025-09-11 09:43:28 +02:00
Bastian Greshake Tzovaras
8e8ff4014d add collection of scraping settings (#7937)
Closes #7894

Changes proposed in this pull request:

- adds the link to the collection of XPath scraping settings to the appropriate documentation page
2025-09-11 09:10:30 +02:00
scmaybee
e7c9c3d11e i18n zh-CN: Update index.php (#7943)
Fixed a translation errors.
2025-09-11 00:56:25 +02:00
Alexis Degrugillier
c2009b5090 Rewrite PHP opening tags (#7939)
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-10 21:53:08 +02:00
Frans de Jonge
c6c2e1bc55 Translate Dutch (#7940)
* Translate Dutch

* ignore

* update the SVG file

* without newline
2025-09-10 21:34:34 +02:00
Alexis Degrugillier
a1411c7f2c Translate the API information page (#7922)
Closes #6222
Translate the `api/index.php` page

* Update app/i18n/pl/api.php

Co-authored-by: Inverle <inverle@proton.me>

* Update app/i18n/de/api.php

Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>

* i18n: fr
* <kbd>

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Inverle <inverle@proton.me>
Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-09-10 07:04:17 +02:00
Inverle
087df1e5d9 Use Minz_Translate::exists() for language check in createUser() (#7934)
(consistency)
Related / follow-up: #7878
2025-09-09 23:11:38 +02:00
Alexis Degrugillier
6ad625812a Add a default language constant (#7933)
This replace the use of `en` through out the code.
2025-09-09 22:01:04 +02:00
Alexis Degrugillier
de624dc8ce Add new file in i18n (#7917)
When manipulating I18N files, it is now possible to add a new file to all
languages. This action is available both in the manipulation script and
the makefile.
2025-09-05 22:57:34 +02:00
nhirokinet
2404a29ee5 Update Japanese translation for "Duration to keep logged in" (#7918)
If this corresponds to "Duration to keep logged in", then current Japanese text says different thing: "Time to store log (not login)".

There are multiple choices for translation of this one and I thought a bit which one is the best, and I'm not sure this is the best, but at least this explains "the time after user logged in until user is logged out", not "the time the log is stored".
2025-09-05 19:32:49 +02:00
Alexis Degrugillier
23ba48c71f Change how files are included (#7916)
1. `include`, `include_once`, `require` and `require_once` are expressions not functions, parentheses are not necessary.
2. to move up the directory tree, it's better to use the `dirname` function instead of relying on `/..`.
2025-09-05 15:56:46 +02:00
Alexandre Alapetite
3d85eb1938 Changelog 2025-09-05 12:59:47 +02:00
Inverle
858616f075 Fixes for no-cache.txt (#7907)
* Closes and fixes error from #7885
* `no-cache.txt` is now respected in `f.php`, `ext.php` and `serve` action in `extensionController`
   * And in all other places that weren't checking for `no-cache.txt` (some extensions maybe)
2025-09-05 08:16:52 +02:00
nhirokinet
6c9a9ee226 add nhirokinet to CREDITS.md (#7908)
With a contribution of https://github.com/FreshRSS/FreshRSS/pull/7900
2025-09-03 12:13:26 -04:00
dependabot[bot]
32ec85c2d7 Bump the stylelint group with 2 updates (#7898)
Drop of back-compatibility with older browsers: use standard `overflow-wrap` instead of `word-wrap` .
We may re-introduce `word-wrap` (in addition of standard `overflow-wrap`) if a need is reported.

* Bump the stylelint group with 2 updates

Bumps the stylelint group with 2 updates: [stylelint](https://github.com/stylelint/stylelint) and [stylelint-config-recommended-scss](https://github.com/stylelint-scss/stylelint-config-recommended-scss).


Updates `stylelint` from 16.23.0 to 16.23.1
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.23.0...16.23.1)

Updates `stylelint-config-recommended-scss` from 15.0.1 to 16.0.0
- [Release notes](https://github.com/stylelint-scss/stylelint-config-recommended-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-recommended-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-config-recommended-scss/compare/v15.0.1...v16.0.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.23.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: stylelint
- dependency-name: stylelint-config-recommended-scss
  dependency-version: 16.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: stylelint
...

Signed-off-by: dependabot[bot] <support@github.com>

* stylelint --fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-09-03 11:52:22 +02:00
maTh
e8a5e4e50f delete margin (#7904)
Ref: #4493

Before:
<img width="816" height="571" alt="grafik" src="https://github.com/user-attachments/assets/bfc6c933-5e4e-46e8-91d7-0e0e7b469671" />

After:
<img width="795" height="523" alt="grafik" src="https://github.com/user-attachments/assets/5b5a668c-c3ca-46ef-be69-ad5b5b90a412" />
2025-09-03 06:52:31 +02:00
Alexis Degrugillier
8a59dc3402 add target to generate the translation progress (#7905)
* add target to generate the translation progress

* replace short options by long options

This adds a little bit of explanation for someone looking at the code without knowing
how the underlying script is working.

* sort test targets

* sort i18n targets
2025-09-03 06:50:24 +02:00
Alexis Degrugillier
94c53ae1fb refactor value setting for javascript variables (#7906)
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-03 06:45:01 +02:00
Alexandre Alapetite
14a5ffe6a7 Fix typo in Japanese translation (#7903)
I just found a typo in Japanese translation.

開業: opening business
改行: newline

Co-authored-by: nhirokinet <nhirokinet@nhiroki.net>
2025-09-02 21:52:52 +02:00
Alexis Degrugillier
28e0a548c8 Change make help output (#7901)
The new output allows to categorize the targets.
2025-09-02 21:30:11 +02:00
dependabot[bot]
105a30eb9b Bump sass from 1.89.2 to 1.91.0 (#7899)
Bumps [sass](https://github.com/sass/dart-sass) from 1.89.2 to 1.91.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.2...1.91.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.91.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 20:02:19 +02:00
dependabot[bot]
6e74bf125b Bump the eslint group with 2 updates (#7902)
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js).


Updates `eslint` from 9.32.0 to 9.34.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.32.0...v9.34.0)

Updates `@eslint/js` from 9.32.0 to 9.34.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/commits/v9.34.0/packages/js)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@eslint/js"
  dependency-version: 9.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 19:59:03 +02:00
dependabot[bot]
742d3c5080 Bump actions/upload-pages-artifact from 3 to 4 (#7896)
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 12:25:41 +02:00
dependabot[bot]
fe448eaa11 Bump actions/checkout from 4 to 5 (#7895)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 09:52:45 +02:00
Inverle
335addab5a CSS fixes for Swage (#7608)
- Fixes for Swage
	- Buttons not showing correctly #7465
	- Dropdown placement (some dropdowns couldn't fit in viewport)
	- Icons not appearing in some places due to color i.e. label management and subscription management page
	- Made `.form-group` and button inside search dropdown hover colors slightly darker, for better visibility
	- Nav menu style improvements on mobile
		- Smaller if not on main page
		- Align settings icon on configuration pages to the right
		- Support nav menu for feed statistics page
	- Text alignment in search dropdown
	- Ensure `input, select, textarea` don't overflow the page
	- Login link placement in anonymous view
	- Other fixes for
		- Add via bookmarklet page
		- About page
		- Shared HTML query page
		- Register page
	- Text visibility for debug log
- Provide classes `layout.phtml` within `<html>`:
	- `logged_in` if applicable
	- `controller_$NAME` if applicable
	- `file_$NAME` if applicable
- Some other fixes

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>
2025-09-01 23:45:54 +02:00
Alexis Degrugillier
b2a82b64b5 fix: add validation when creating a new tag (#7890)
A tag name must be unique and can't be used as a category. There were no error message when creating a tag identical to an existing category. Now, this is addressed.

See #7686

Closes #7686

Changes proposed in this pull request:

- add validation on tag creation

How to test the feature manually:

1. create a new category (ex: `HW`)
2. create a new tag with the same name as the new category (ex: `HW`)
3. validate that the appropriate error message is displayed
2025-09-01 23:29:54 +02:00
Alexis Degrugillier
d31f485973 fix: add default values on stat processing (#7891)
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
2025-09-01 23:28:17 +02:00
maTh
1b2293a57a Fix/config dropdown menu mobile view (#7893)
Before:
<img width="534" height="394" alt="grafik" src="https://github.com/user-attachments/assets/63cbf645-2380-448f-9e96-11cf454f9a13" />

1: menu is not right hand side aligned
2: rounded corner (Origine theme specific)

After:
<img width="533" height="359" alt="grafik" src="https://github.com/user-attachments/assets/bfb8fd79-3190-4d40-bba1-ef5fadb81f01" />

Menu is aligned on the right hand side
Sharp corner



Changes proposed in this pull request:

- CSS


How to test the feature manually:

1. small screen for mobile view
2. open config menu right top corner

Negative check:
other dropdown menus should not be touched (f.e. User Queries menu, search, article labels menu)
2025-09-01 23:27:17 +02:00
Inverle
e20b0c8c02 Fix displaying of current date in main statistics (#7892)
Before

<img width="1034" height="543" alt="image" src="https://github.com/user-attachments/assets/09408f81-42f1-4613-948b-b2c7e3ff2409" />

After

<img width="1031" height="536" alt="image" src="https://github.com/user-attachments/assets/d4dd3702-c8a5-4f8d-9014-b419a982d9ec" />

The current day is now included within statistics.

The `-1` thing started happening after #7752 but I'm not sure whether the correct solution is to display the current day or just fix it in the JS

For reference here's what the chart used to looked like:

<img width="1027" height="536" alt="image" src="https://github.com/user-attachments/assets/47a27bad-6593-4e84-a04f-e4385f601c6a" />
2025-09-01 23:25:58 +02:00
Inverle
c44bb029c0 Fix log CRLF injection (#7883)
* Fix log CRLF injection

* empty -> space

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-31 20:05:30 +02:00
Inverle
87879e8392 Improve leave validation (#7830)
* Improve leave validation

* array_key_exists -> isset

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-31 19:09:02 +02:00
maTh
94d4f942d3 <label> -> <div> (#7882)
Ref #7646

`<label>` needs to have an HTML input within or a `for=""` attribute

Changes proposed in this pull request:

- fixed 2 `<label>` who are not a 'real' label, so a `<div>` is the better choice


How to test the feature manually:

1. open feed configuration
2. click on "Icon" (first lines of config page) or "Export as OPML" (last lines of config page)
3. nothing will happen. Mouse cursor will not change while hovering over the labels.
2025-08-31 19:07:04 +02:00
Inverle
200eafb352 Regenerate session ID on login (#7829)
Follow-up to #7762

* Regenerate session ID on login
* Send only one cookie
* Improvements
* Delete old session file
* Simplify
* Make function consistent with others
2025-08-30 21:40:00 +02:00
maTh
585875cda7 Global view: use generic CSS class to open panel (#7868)
I found this todo and just did it. 😆 

Changes proposed in this pull request:

- use `open-class` instead of `.box a`


How to test the feature manually:

1. go to global view
2. click on a box title link: it will open the whole category in the panel
3. click on a feed name: it will open the feed articles in the panel
4. nothing will be different for the user as before
2025-08-30 21:32:50 +02:00
maTh
c55e2d317f delete sub.title.rename_label (#7881)
Ref #7871 
Ref #5954

Changes proposed in this pull request:

- `sub.title.rename_label ` has been not used anymore since #5954 (Version V1.24.0)
- `sub.title.rename_label ` deleted
2025-08-30 21:31:20 +02:00
maTh
266c1ce85e fix: Mapco/Ansum theme: read all button in mobile view (#7873)
Closes #7644

Before:
<img width="212" height="153" alt="grafik" src="https://github.com/user-attachments/assets/628034cf-421a-43c1-a762-21906d99d5d9" />


After:
<img width="249" height="186" alt="grafik" src="https://github.com/user-attachments/assets/8414aa34-4936-44e1-84e4-52dad70477b6" />


How to test the feature manually:

1. use Ansum/Mapco theme
2. have a small screen to see it in the mobile view
3. see the read all button in the normal view
2025-08-30 21:30:16 +02:00
Alexandre Alapetite
2b02ca59c6 Include port number for HTTP Retry-After (#7875)
fix https://github.com/FreshRSS/FreshRSS/issues/7870 (partially)
2025-08-30 16:28:37 +02:00
Inverle
379a387dde Disallow setting non-existent language (#7878)
The set language is used inside paths and can lead to issues by including PHP files from other locations
2025-08-30 16:26:24 +02:00
Inverle
43248b461d Fix curl response parsing (#7866)
* Fix curl response parsing

* Specify redirect count with `\SimplePie\HTTP\Parser::prepareHeaders()` instead

Simply notify SimplePie of the redirect count before parsing

* Better error check

* Simplify
2025-08-30 15:13:10 +02:00
maTh
5cb49094b8 Label config delete label (#7871)
* h2 -> h3

* delete a label -> delete this label

* i18n: fr

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-30 00:01:10 +02:00
maTh
4cb82682b4 dark mode scheme + delete useless shadow (#7872) 2025-08-29 23:48:40 +02:00
Alexandre Alapetite
288992d9ad Fix logic for searching labels (#7863)
`L:1 L:2` is supposed to be an implicit `AND`,
while `L:1,2` as well as `L:1 OR L:2` is an `OR` logic
2025-08-27 21:56:10 +02:00
John Marlo Evangelista
70f0d6d24f Fix Docker Traefik .yml and SERVER_DNS (#7858)
* Rename tls.yml to tls.yaml

Rename tls.yaml so it will be align to the entry in docker-compose-proxy.yml:

volumes:
  - ./tls.yaml:/etc/traefik/tls.yaml

To prevent error:
error="error reading configuration file: /etc/traefik/tls.yaml - read /etc/traefik/tls.yaml: is a directory"

* Update example.env

Added option for SERVER_URL

To prevent warning:
WARN[0000] The "SERVER_DNS" variable is not set. Defaulting to a blank string.

* Update example.env

Change SERVER_URL to SERVER_DNS

* Use .yml consistently

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2025-08-27 21:54:41 +02:00
Alexandre Alapetite
6c64e7b07b Docker CMD compatibility (#7861)
Some caller systems do not seem escape the CMD quotes correctly.
fix https://github.com/FreshRSS/FreshRSS/issues/7859#issuecomment-3225691432
fix https://github.com/FreshRSS/FreshRSS/discussions/5611
fix https://github.com/FreshRSS/FreshRSS/discussions/7267
2025-08-27 14:34:24 +02:00
Inverle
1481cf51f7 Fix fetching OPML url with special characters (#7843)
* Decode dynamic OPML url during fetch

* add ENT_QUOTES

* Store as plaintext instead of decoding
2025-08-25 10:37:23 +02:00
Alexandre Alapetite
339dcb1ea3 Start 1.27.1-dev 2025-08-18 18:06:30 +02:00