Commit Graph
73 Commits
Author SHA1 Message Date
Alexandre Alapetite bdf899164b System option for number of feeds to refresh in parallel (#6124)
* System option for number of feeds to refresh in parallel
fix https://github.com/FreshRSS/FreshRSS/issues/6123

* Forgot refreshDynamicOpml
2024-02-26 09:01:49 +01:00
Alexandre Alapetite a80a5f48a1 Pass PHPStan level 8 (#5946)
* Pass PHPStan level 8
And prepare for PHPStan level 9 https://phpstan.org/user-guide/rule-levels

* Revert wrong replace in comment

* Fix PHPStan level 8

* Update PHPStan and other dev dependencies

* Remove obsolete comment

* noVariableVariables and towards bleedingEdge
https://github.com/phpstan/phpstan-strict-rules
https://phpstan.org/blog/what-is-bleeding-edge

* More bleedingEdge

* A bit more PHPStan level 9

* More PHPStan level 9

* Prepare for booleansInConditions
Ignore int and null

* Revert wrong line

* More fixes

* Fix keep_max_n_unread

* Stricter attribute functions

* Stricter callHooks and more PHPStan level 9

* More typing

* A tiny more
2023-12-18 17:59:16 +01:00
Alexandre Alapetite 203132b015 Pass FreshRSS version to JS client side for extensions (#5902)
fix https://github.com/FreshRSS/FreshRSS/issues/5542
2023-11-25 00:37:42 +01:00
30c7a61a9b Use strict_types (#5830)
* Little's optimisations and booleans in conditions

* Apply strict type

* Apply strict type

* Apply strict type

* Fix multiple bugs with PHP 8.2 and 8.3

* Many declares missing, more errors fixed

* Apply strict type

* Another approach

* Stronger typing for Minz_Session

* Fix case of SQLite

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-11-16 22:43:00 +01:00
Ben PassmoreandAlexandre Alapetite b9939bdaac Added ability to mark articles as read on focus. (#5812)
* Added ability to mark entries as read on focus.

Feature proposed in issue #5723.

* make-fix-all + i18n fr

* Use batch to save resources and increase performance

* Use "keep_unread"

* typo

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-11-09 11:12:04 +01:00
bc5666cd27 Fix labels in anonymous mode (#5650)
* Fix labels in anonymous mode
fix https://github.com/FreshRSS/FreshRSS/issues/4305

* Show all tags

* Revert "Show all tags"

This reverts commit 24dfba5017.

* Add message when no labels

* fixed no label style

* i18n de translation

* Fix in non-anomymous mode

* No class in anonymous mode

---------

Co-authored-by: maTh <1645099+math-GH@users.noreply.github.com>
Co-authored-by: math-gh <>
2023-09-14 20:23:33 +02:00
Alexandre Alapetite f3760f138d Complete PHPStan Level 6 (#5305)
* Complete PHPStan Level 6
Fix https://github.com/FreshRSS/FreshRSS/issues/4112
And initiate PHPStan Level 7

* PHPStan Level 6 for tests
* Use phpstan/phpstan-phpunit
* Update to PHPStan version 1.10

* Fix mixed bug

* Fix mixed return bug

* Fix paginator bug

* Fix FreshRSS_UserConfiguration

* A couple more Minz_Configuration bug fixes

* A few trivial PHPStan Level 7 fixes

* A few more simple PHPStan Level 7

* More files passing PHPStan Level 7
Add interface to replace removed class from https://github.com/FreshRSS/FreshRSS/pull/5251

* A few more PHPStan Level 7 preparations

* A few last details
2023-04-17 08:30:21 +02:00
Alexandre Alapetite 6c01e4e7d6 Use typed access to request parameters (#5267)
* Use typed access to request parameters
This was a big source of mixed datatypes in many places

* Fix notifications

* Fix bookmarkAction
2023-04-07 00:13:49 +02:00
maThandAlexandre Alapetite 807ea755e0 fix preview (#4291)
* fix

* Update extra.js

* reorga the scripts

* Update extra.js

* Several fixes
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1125472321

* More fixes

* Cleaning

* fix pr 4291

* Reorganise some script functions

* Remove unused popup-txt
And associated function openPopupWithMessage

* Fix archiving categories
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1126924602

* Fix stats
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1126983134

* Fix direct subscription
E.g. http://localhost/i/?c=subscription&id=735

* Fix subscription add
https://github.com/FreshRSS/FreshRSS/pull/4291#issuecomment-1126991621

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-05-15 21:52:52 +02:00
maThandAlexandre Alapetite 827cec6d13 Improved: Browser notification: unread message (#4193)
* notification

* i18n (english string)

* i18n: en-us + de

* Update gen.php

* i18n: PL + RU

* Update app/i18n/fr/gen.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-02-04 15:54:31 +01:00
Alexandre Alapetite 77e9877316 Add PHPStan (#4021)
* Add PHPStan
#fix https://github.com/FreshRSS/FreshRSS/issues/4016
https://phpstan.org/

```sh
composer run-script phpstan
```

* More fixes

* Fix global variables

* Add .phtml

* Fix merge
https://github.com/FreshRSS/FreshRSS/pull/4090

* Fix more warnings

* Fix view errors and enable in CI

* ReturnTypeWillChange

* Dynamic view type

* Fix Minz static/self bug
2021-12-31 17:00:51 +01:00
maThandAlexandre Alapetite f0fa3f3202 New shortcut: actualize feeds (#3900)
* configs

* i18n

* improved

* Update app/i18n/fr/conf.php

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

* Update p/scripts/main.js

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

* Update main.js

* Update conf.php

* make fix-all

* i18n

* i18n

* i18n: delete conf.shortcut.actualize

* Update app/views/configure/shortcut.phtml
2021-10-28 01:24:44 +02:00
stysebaeandAlexandre Alapetite 85b898c623 Add shortcut to jump to next unread article (issue #3393) (#3891)
* Add shortcut to jump to next unread article

* phpcbf

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-10-19 10:46:39 +02:00
Alexis Degrugillier 4f4ce3c71b Remove shortcut validation (#3548)
Before, only standard shortcuts were supported. When other shortcuts were
configured, they were filtered out.
Now, those shortcuts are stored in the configuration and an alert message
is displayed to alert the user that he is using non-standard shortcuts.

See #3481
2021-03-21 15:42:27 +01:00
Clemens NeubauerandAlexandre Alapetite ef458992c1 two new hooks (#3342)
* add two new hooks

I develop a new extension and i need 2 new hooks for it

* update EN documentation

* Correct typing errors

* Update app/views/helpers/javascript_vars.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-01-07 21:45:48 +01:00
Prashant TholiaandAlexandre Alapetite 6f23999c7b Remember open categories (#3185)
* feature(normal) - Remember opened categories in the left menu

Session storage based implementation to remember opened categories in left menu

Issue Ref: #2248

* lib_phpQuery updates

* Updates covering feedback points and functionality fixes

* Feedback updates

* Revert "lib_phpQuery updates"

This reverts commit dcd23b9418.

* First review

Change variable name to "remember" instead of "open".
Start using localStorage instead of sessionStorage.
Simplify code.

* Simplify remember categories init function

Replace 'session' with 'local' in function names and comment

Set open categories CSS as same as when category is opened in 'active' unfold mode

* Remove URLSearchParams check in remember categories init function

* Delete open categories on login and logout

* JSHint check fix

* Second review

* Make new mode the default for new users
* Always open active category
* Reduce / simplify code

* i18n French

* Revert default value

Wait a bit more for this decision / change

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-11-02 12:03:16 +01:00
Alexis Degrugillier 399ce39579 Add language in JS context (#3116) 2020-07-14 12:31:47 +02:00
Alexis Degrugillier dc68783fc8 Add controls on media (#3036)
Now, there is a shortcut to play or pause media available from an
entry. If there is more than one media available, only the first
one will be targeted.

See #1952
2020-06-05 23:37:05 +02:00
Alexandre Alapetite d9e246ecf7 Shortcuts legacy (#2320)
Fix https://github.com/FreshRSS/FreshRSS/issues/2316
2019-04-02 00:08:51 +02:00
Alexandre Alapetite eefeb23419 jQuery ES6 partial refactoring
Prefix jQuery variables with $
Start avoiding jQuery in easy cases
Use let/const
2018-12-25 05:11:38 +01:00
Alexandre Alapetite 4888f919f1 Prepare for batch mark as read 2018-12-25 01:30:28 +01:00
Matt DeMoss f3a88614ef Add shortcuts for focusing next and previous without opening articles. (#1767)
* add skipping option to toggleContent to use later for 'i' and 'o' hotkeys

* in English config j,k are now 'open' and not 'skip', i,o are called 'focus .. without opening'
2018-11-18 14:08:27 +01:00
Alexandre Alapetite a66b995be7 Explicit quotes decoding (#1947)
* Explicit quotes decoding

* Explicit htmlspecialchars_decode and htmlspecialchars
2018-06-22 16:07:48 +02:00
Alexis Degrugillier e73fae1591 Add shortcuts to switch views (#1755) 2018-01-01 18:53:53 +01:00
Paulius Šukys 67dd80f842 Added additional configuration setting for #1530 . This includes default settings and translation entry for English 2017-05-22 09:33:55 +02:00
Alexandre Alapetite 9e698108fe Do not mark as read in anonymous mode
And avoid HTTP 403 https://github.com/FreshRSS/FreshRSS/issues/1431
2017-03-04 11:21:57 +01:00
Alexandre Alapetite e6fd34bdda CSRF token, update HTTP Referrer policy to same-origin
https://www.w3.org/TR/referrer-policy/#referrer-policy-no-referrer
https://github.com/FreshRSS/FreshRSS/issues/570
https://github.com/FreshRSS/FreshRSS/issues/955
https://github.com/FreshRSS/FreshRSS/issues/1198
https://github.com/FreshRSS/FreshRSS/issues/565
https://github.com/FreshRSS/FreshRSS/issues/554
2016-08-13 17:49:31 +02:00
Alexandre Alapetite c1548e732d Remove Mozilla Persona login
https://github.com/FreshRSS/FreshRSS/issues/1052
2016-07-31 14:58:19 +02:00
Alexandre Alapetite e3dc7d46e1 CSP: Use inline JSON instead of one-time cookie
Simpler, lighter
https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-21 14:23:24 +01:00
Alexandre Alapetite e4a459a6ed CSP no inline javascript draft
https://github.com/FreshRSS/FreshRSS/issues/1075
2016-02-16 23:53:39 +01:00
Alexandre Alapetite 362dbad0b8 Several position problems, in particular in the global view
Multiple small bugs in global and reader views.
Related to these old issues:
https://github.com/FreshRSS/FreshRSS/issues/634
https://github.com/FreshRSS/FreshRSS/issues/275
2016-01-24 13:18:48 +01:00
Alexandre Alapetite 2036b9aed3 Suppress possible warnings after update
Prevent JavaScript errors when the shortcuts have not been defined in
the config file.
https://github.com/FreshRSS/FreshRSS/issues/733
2015-01-20 19:54:00 +01:00
Marien Fressinaud bf2f7176ee Improve i18n for JavaScript
notif_* messages have been moved into feedback array.
2015-01-18 12:06:40 +01:00
Marien Fressinaud 14206aca16 Improve behavior when mark as read / favorite fail
If the request fails:
- Open a notification to inform user
- Remove pending index from the pending_feeds list

Fix https://github.com/FreshRSS/FreshRSS/issues/751
2015-01-18 11:59:03 +01:00
Marien Fressinaud d3a93ea290 BREAKING FEATURE: Remove general in config
General attribute has been removed from system config.
Now subattributes (e.g. environment, salt, title, etc.) are directly accessible.

YOU HAVE TO FIX YOUR ./data/config.php file!

- Remove the general array
- Values inside this array must be kept
- To see what it must look like, please have a look to ./data/config.default.php
  (but keep your values!!).

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 18:53:36 +01:00
Marien Fressinaud 7cca47d1ab Change name of user configuration var in Context
- FreshRSS_Context::$conf is replaced by FreshRSS_Context::$user_conf
- Introduce FreshRSS_Context::$system_conf
- Remove FreshRSS_Configuration object

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05 22:45:03 +01:00
Marien Fressinaud 51a71ec4b9 New configuration system (not working yet)
- Use only Minz_Configuration
- register() method to load a new configuration file
- get() to get a configuration
- new exceptions related to configuration
- fix a list configuration calls to have FRSS working

Current problems to resolve:

- How to handle configuration param verifications (i.e. check auth_type
  is a value from none, http_auth, persona or form)
- We must use $conf = Minz_Configuration::get('system'); $general_conf = $conf->general;
  to access global system configuration which is quite annoying. How to change that?

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05 16:54:16 +01:00
Marien Fressinaud 8a40a72657 Fix i18n for logs, pagination and javascript vars
Logs first to avoid annoying message when refreshing log page
2014-12-10 23:16:12 +01:00
Alexis Degrugillier a3a77b09e9 Add an automatic sticky post configuration
Before, when the article while marked as read while scrolling and auto removed after reading, the display was in the middle of the following article.
Now, the article is forced to be a sticky article so the user display is forced to be on top of the following article.
2014-11-22 08:01:31 -05:00
Alexis Degrugillier 960f86ba20 Add a feature to hide articles when they are read
This is a new reading option to hide articles when they are read. The hidding process occurs when the article is left for an other article. This way, even when the article is marked as read on opening, it is hidden only while navigating to an other article.
I'm not really happy with the behavior when the "mark while scrolling" option is enabled. Please review.
It is missing the i18n since we're not supposed to push them before it exists on i18n.freshrss.org. Or maybe I misunderstood the process.

See #476
2014-11-02 10:05:26 -05:00
Marien Fressinaud 1a22a87fb1 Use FreshRSS_Context::$conf only
- Replace $this->view->conf in controllers
- Replace $this->conf in views
2014-10-20 18:45:22 +02:00
Marien Fressinaud 1252b3dd86 Authentication system moved + Persona comes back!
AuthController is dedicated to auhentication.
Persona is back, greater than ever!

See https://github.com/marienfressinaud/FreshRSS/issues/655
2014-10-07 16:37:10 +02:00
Marien Fressinaud aa8529b2d6 Coding style (views)
Some files was not saved :s

See https://github.com/marienfressinaud/FreshRSS/issues/655
2014-10-05 19:12:52 +02:00
Marien Fressinaud d8ed718aab Refactor javascript_vars.phtml
Introduce kind of context objectin JavaScript

See https://github.com/marienfressinaud/FreshRSS/issues/634
See https://github.com/marienfressinaud/FreshRSS/issues/655
2014-10-05 17:32:01 +02:00
Marien Fressinaud c8fad68a4f Use _i() whenever it is possible
Transform FreshRSS_Themes::icon\s? in _i

See https://github.com/marienfressinaud/FreshRSS/issues/655
2014-10-05 16:10:25 +02:00
Marien Fressinaud 6c8b36f04e Let's begin the big refactoring!
Minz_Translate::t\s? replaces by _t

See https://github.com/marienfressinaud/FreshRSS/issues/655
2014-10-05 15:55:20 +02:00
Alexis Degrugillier 38a6f0c4b2 Add a shortcut to close drop-down lists 2014-10-04 09:06:35 -04:00
Marien Fressinaud ce43b1761b Fix box when no feed in category
See https://github.com/marienfressinaud/FreshRSS/issues/646
2014-10-02 19:47:02 +02:00
Marien Fressinaud bcb1e3750a More explicit message when deleting feeds or cats
Introduce "data-str-confirm" to override default message for confirm actions.

Fix https://github.com/marienfressinaud/FreshRSS/issues/625
2014-09-24 13:56:40 +02:00
plopoyop 4211539c24 Add timeout option for HTML5 notification 2014-09-18 10:46:34 +02:00