summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-01-20Fix SQLite CONCAT used for search (#2777)Gravatar Alexandre Alapetite
Used e.g. for searches `inurl:xxx` Co-authored-by: Marien Fressinaud <dev@marienfressinaud.fr>
2020-01-20Fix 'dateAdded()' getter (#2774)Gravatar Julien-Pierre Avérous
Be homogeneous in field used, to prevent weird behavior in the future.
2020-01-18[API, extension] Use 'dateAdded()' to forge 'crawlTimeMsec' & ↵Gravatar Julien-Pierre Avérous
'timestampUsec' field in greader API. (#2773) - Add the ability to customize 'dateAdded()', so an extension can change it if needed.
2020-01-17fix: #2701 Fix look of authors (#2771)Gravatar Marien Fressinaud
This fix makes the authors part of the "title item", so it's not considered as another block. This is not perfect since authors will disappear on small screens, but we can discuss of putting titles on multi-lines (see https://github.com/FreshRSS/FreshRSS/issues/2344)
2020-01-16Show Favorites as Unread (#2766)Gravatar Offerel
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> Co-authored-by: Marien Fressinaud <dev@marienfressinaud.fr>
2020-01-16fix: Make sure to have user conf in hasAccess (#2769)Gravatar Marien Fressinaud
The `FreshRSS_Auth::hasAccess` method is called during auth initialization (`app/FreshRSS.php:78`), only for `user#create` action. However, at this step, the `user` configuration namespace hasn't be initialized yet, and so users weren't able to register because of the exception... quite critical!
2020-01-16Pass the entries to 'entry_before_display' extension hook (#2763)Gravatar Julien-Pierre Avérous
* Pass the entries to 'entry_before_display' extension hook. - #2762 * Fix code-style. * - Fix 'Whitespace found at end of line'. Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-01-16[fix] Correct default view for label (#2767)Gravatar Frans de Jonge
While testing <https://github.com/FreshRSS/FreshRSS/pull/2766> I noticed that clicking the label activated the wrong dropdown.
2020-01-06Add an admin flag on users (#2709)Gravatar Alexis Degrugillier
Now FRSS supports more than one admin. Admins have the same rights as the default user. Admins can promote or demote other users. The default user is considered as an admin even if it does not have the admin flag enabled. See #2096
2020-01-06Add guidance for pull requestsGravatar Marien Fressinaud
The main reason for this checklist is to not forget about documentation, and to encourage us to write more tests. I hope it'll help us to improve both!
2020-01-05Fix loader display in Dark theme (#2753)Gravatar Alexis Degrugillier
Before, the default loader was used. It rendered poorly since it has a white border. Now, the theme loader is used.
2020-01-04Fix wrong getHeader refactoring (#2749)Gravatar Alexandre Alapetite
* Fix wrong getHeader refactoring Fix regression introduced by https://github.com/FreshRSS/FreshRSS/pull/2373 The refactoring required a call to init() even for static functions, which is most of the time not done. Removed premature abstraction of `$_SERVER`, which was the root cause of the bug. https://github.com/FreshRSS/FreshRSS/issues/2748#issuecomment-569898931 * Refactoring: Move serverIsPublic to Minz_Request * Add mitigations for wrong configurations Due to the regression, we have some existing configurations with a bad base_url * Forgot one instance
2020-01-03Fix logging environment constants (#2745)Gravatar Alexandre Alapetite
* Fix logging environment constants * COPY_LOG_TO_SYSLOG was only working when Syslog was used * FRESHRSS_ENV was not properly used to set logging level * Simplify code Always call `openlog()` even when it is not used * Always specify syslog properties https://github.com/FreshRSS/FreshRSS/pull/2745#discussion_r362207445 * $username is also needed further down * No new line in syslog
2019-12-30Fix PostgreSQL install (#2735)Gravatar Alexandre Alapetite
* Fix PostgreSQL install Fix https://github.com/FreshRSS/FreshRSS/issues/2732 When username is different from database name * Add more comments https://github.com/FreshRSS/FreshRSS/pull/2735/files/2b7807d1b3fdd0dc34538faad465934fb737fa3a#r361846714
2019-12-29fix: Fix undefined function _t on WebSub (#2743)Gravatar Marien Fressinaud
I published an article via WebSub, but I never received it. So I checked my logs to find why and I found the following stacktrace: ``` 29/Dec/2019:15:58:32 +0000 "POST /api/pshb.php" 500 NOTICE: PHP message: PHP Fatal error: Uncaught Error: Call to undefined function _t() in /path/app/Models/Category.php:83 Stack trace: /path/app/Models/CategoryDAO.php(417): FreshRSS_Category->_id(1) /path/app/Models/CategoryDAO.php(192): FreshRSS_CategoryDAO::daoToCategory(Array) /path/app/Models/Feed.php(466): FreshRSS_CategoryDAO->searchById('1') /path/app/Controllers/feedController.php(416): FreshRSS_Feed->cleanOldEntries() /path/p/api/pshb.php(141): FreshRSS_feed_Controller::actualizeFeed(0, 'https://flus.io...', false, Object(SimplePie)) {main} thrown in /path/app/Models/Category.php on line 83 ``` The `_t` function should be loaded with the Minz_Translate class, but the latter isn't initialized on WebSub endpoint. In my opinion, we should not have to care about this kind of detail of implementation and it reveals a deeper architectural misconception, but for now the fix should be enough. It’s quite difficult to reproduce locally though.
2019-12-29tec: Add a test target to Makefile (#2725)Gravatar Marien Fressinaud
* tec: Add a test target to Makefile Minor edit put php7-phar on third line I try to keep on the third line the Alpine-specific PHP extensions (i.e. that are not by default in Ubuntu), and in alphabetic order Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Allow to run make test without Docker
2019-12-28Fix labels dropdown not scrollable after a while (#2727)Gravatar romibi
2019-12-28Update zh-cn (i18n) (#2730)Gravatar 石渠清心
2019-12-25tec: Improve logs on DB connection failure (#2734)Gravatar Marien Fressinaud
For a moment, PHP wasn't able to connect to my database. I tried to understand what happened, unfortunately, the logs were not very helpful (it basically showed me information that I had in my configuration file). I changed the dsn string by the message from the raised exception, I think it will be more useful. Other call of Minz_PDOConnectionException are passing error messages instead of string connection, so I took the opportunity to rename the constructor argument.
2019-12-23Docker: Alpine Linux 3.11 (#2729)Gravatar Alexandre Alapetite
https://alpinelinux.org/posts/Alpine-3.11.0-released.html Apache/2.4.41 (unchanged), PHP 7.3.13 (updated from 7.3.11 when Alpine 3.10 was released, but unchanged since the latest build of 3.10)
2019-12-23tec: Fix test suite (#2721)Gravatar Marien Fressinaud
* Rework the travis file to enable PHPUnit I realized that unit tests weren't executed on Travis. While working on this file to enable these tests, I started to think we could simplify it. I separated jobs so: - PHP linter and tests are only performed on PHP 7.3 - Translations are tested separatly so they can fail (it was already the case but it was hard to understand the way it was done) - PHP 5.6 only checks syntax issues - the last job checks css, js, etc. (it didn't change) PHPUnit is not executed on 5.6 because only the version 5 is available while the latest version is the 8 (https://phpunit.de/supported-versions.html). I think it's easier to read (each job is more explicit) but I'm not a Travis expert so maybe there's some room for improvements. * Fix failing tests The category `_name` regression was introduced in commit b323ed084. I wasn't able to understand when and why Search tests was wrong. The rest is about upgrade of PHPUnit.
2019-12-22fix: Rename COPY_LOG_TO_STDERR in COPY_LOG_TO_SYSLOGGravatar Marien Fressinaud
The constant was badly named. The bug was introduced in 3c49986ec, probably because of a copy/paste. There is no other occurrences of COPY_LOG_TO_STDERR in the code (checked with `git grep`).
2019-12-22tec: Allow to change CSP header from controllersGravatar Marien Fressinaud
For an extension, I needed to call a script from an external domain. Unfortunately, the CSP headers didn't allow this domain and I had to patch manually the FreshRSS FrontController for my extension. It's obviously not a long-term solution since it has nothing to do in the core of FRSS, and I don't want to apply this patch manually at each update. With this patch, I allow changing the CSP header from inside the controller actions. It allows extensions to modify headers. It's also an opportunity to remove a bit of code from the FrontController. I wasn't happy with the previous implementation anyhow. Reference: https://github.com/flusio/xExtension-Flus/commit/ed12d56#diff-ff12e33ed31b23bda327499fa6e84eccR143
2019-12-18Merge branch 'dev'Gravatar Marien Fressinaud
This is the end of the `dev` branch. Good bye old friend!
2019-12-15Make master the rolling release branch (#2705)Gravatar Marien Fressinaud
* Change default TAG in Makefile We are going to drop the `dev` branch. The Docker tag `dev-*` are based on this branch and so there will be no longer be generated. We must use images based on the `master` branch (i.e. `latest`, `alpine` and `arm`). * Remove references to dev branch in documentation * Synchronize French documentation
2019-12-09tec: Add ~ID~ placeholder in share system (#2707)Gravatar Marien Fressinaud
I'm currently playing with a small extension to improve the email sharing system. It allows to create a message and send an email directly through FreshRSS. For that, I need to retrieve the shared article. I could use the link or the title but it would be less robust and less efficient. Reference: https://github.com/FreshRSS/FreshRSS/issues/300
2019-12-07Extend hooks (#2704)Gravatar Clemens Neubauer
It adds two new hooks to have more options for influencing with extensions.
2019-12-07Add quotes to allow values containing spacesGravatar Alexis Degrugillier
2019-12-07Add user language displayGravatar Alexis Degrugillier
When managing users, I've added the language they selected to be able to communicate with them with the selected language (if I know it). It could be useful when managing a community or a paid service.
2019-12-06Manual update to SimplePie 1.5.3 (#2702)Gravatar Craig Andrews
2019-12-04Update navigation on empty feeds (#2687)Gravatar Alexis Degrugillier
When using feed navigation, the previous behavior was to cycle through all available feeds regardless of their content. To match the behaviour of the first feed and last feed navigation shortcuts, the navigation now skips empty feeds. Now it's consistent through out the application. When using feed navigation with only empty feeds, the new behavior is to cycle through all available feeds. See #2385
2019-12-04Update i18n cli tools (#2673)Gravatar Alexis Degrugillier
* Update i18n cli tools Few things were bugging me when using the cli tool for i18n. So I've modified the tools to be easier to use. First, the tool automatically adds missing keys to all languages. This way, we always have all keys in all languages. Second, the tool detects all untranslated keys and adds automatically the todo comment after the value. Third, when adding a new key, the key is pushed to all languages at once. There is no need to duplicate it manually. Thus making the duplication process obsolete. Fourth, translation and ignore keys are manipulated at the same time. Thus we don't have obsolete ignored strings anymore. * Add i18n rules I find that having the common rules in the Makefile is easier to use, as long as you know they are here. As it is self documented, people will see the new rules when using make. * Use long parameters in Makefile I find that using long parameters in scripts makes it easier to understand what's going on. So I've switched all short parameters to long one. * Format all i18n files I've used the updated version of the cli tools to have some output that can be consistently formated. This commit is a huge formating commit. Nothing was added but some comments were removed in the process.
2019-12-04Refacto request class (#2373)Gravatar Alexis Degrugillier
I split the code into more manageable chunks to make it more readable. It's now easier to get a grasp on it. In the process, I tried to use the yoda style notation to avoid unintentional variable assignement. I also tried to exit early to avoid many "if" levels. I have also added a better way to handle headers and a way to extract languages from the request. It will be easier to choose which language to use for i18n.
2019-12-03Separate the update API password endpoint (#2675)Gravatar Marien Fressinaud
* Extract hashPassword method from userController * Extract and refactor fever key-related methods * Move update of API password to dedicated action * Simplify the controller by refactoring feverUtil * Add locales
2019-12-03Fix doc links (#2685)Gravatar Alexandre Alapetite
Many broken links. Related to https://github.com/FreshRSS/FreshRSS/pull/2614
2019-12-03Translate docs with po4a (#2590)Gravatar Frans de Jonge
* [i18n] Add docs po4a script * Add proof of concept * Add a few more translations * Hush ShellCheck and shfmt * Make that list po4a-friendly * drat, this document could've probably been auto-generated * Definitive proof that it's translated from French ;-) * Add some brand spanking new French translation * More translation * Mostly finish that config page * Fix up FAQ * More contributing * Dev first steps * Let's ignore that admin stuff at the very least for now * Translate release new version, make French the source first and copy all translations Then replace French with English in the source. Much quicker than any alternative route. * And add the English translation * Minor stylistic leftover from French * Most of first steps * Forgot the extensions * Use po4a 0.56 to get rid of way too many newlines * Fix up those newlines * No point linking to Firefox integration anymore from the new user guide * Start on main view * A bunch of main view stuff * More main view * And some subscriptions before going to bed * First steps for devs * More dev first steps * Incomplete French → English dev/GH translation Because I need to ask about that mailing list thing * Fix typo in docs/en/developers/02_Github.md * Translate & complete devs/github to English * Fix up most of extensions * Is that supposed to be a non-breaking space? Let's see * Match up some users/mobile access * More users/mobile access * Add fresh French translation to Fever API * Fix typo * Match frontend todo thingies * Fix a typo * Some extensions strings * Remove Fx subscription service from the docs Cf. https://github.com/FreshRSS/FreshRSS/pull/2606 * Add translation for https://github.com/FreshRSS/FreshRSS/pull/2643 * fix typo as per https://github.com/FreshRSS/FreshRSS/pull/2643#discussion_r345433009 * Add some more French translations * Update French translation as per @aledeg comment https://github.com/FreshRSS/FreshRSS/pull/2590#discussion_r345465909 * Translate some of the meaningless stuff * Translate the rest of contributing.md to French * Fix conflicts * Translate Docker first steps to French * Update with change from #2665 * Add @aledeg corrections * Overlooked a couple @aledeg corrections thanks to GitHub autohide * Latest @aledeg suggestions
2019-12-03Upgrade user management page (#2417)Gravatar Alexis Degrugillier
Before, the use of the user management page was a little bit tedious when there was many users. One must select a user to view some metrics, to update it, or to delete it. Now, the view is clearer because it shows all users at once with their metrics. I introduced a detail page that repeats the metrics but also allow to purge the user's feeds, to update or delete the user. This is the first step to make that page more useful and user-friendly. I have in mind to add a pager for when there is a lot of users, a metric to know when was the last time the user was using the application, and a flag to know if the user has admin rights. See #2096 and #2504 for ideas and inspiration
2019-12-03fix: Allow to refresh feeds if user isn't verified (#2694)Gravatar Marien Fressinaud
While I was looking at the number of articles of my users, I discovered some of them had none, while having a bunch of feeds though. I took a look at the logs generated by `app/actualize_script.php` and discovered that the script stopped strangely (in this example, "OK" for denise is expected, and more users too): ``` FreshRSS[1681]: FreshRSS Start feeds actualization... Starting feed actualization at 2019-11-29T16:37:19+00:00 Actualize alice... Actualize denise... Results: alice OK denise ``` After digging a bit, I quickly realized the script stopped always on users who didn't validate their emails. And indeed, we trigger a `Minz_Request::forward(..., true)` for these users, in the `FreshRSS` class. This function calls the `exit` function, which stops the script. This patch only allows the feed#actualize action to be executed for unverified users in order to avoid an early-`exit`. This is a quick-win solution, but I don't think it's a good one on the long term. I'll propose an alternative in another patch, later.
2019-12-03Remove magicQuotesOff (#2697) (#2698)Gravatar Craig Andrews
* Remove magicQuotesOff (#2697) Magic quotes have been deprecated since PHP 5.4 and as of PHP 7.4 `get_magic_quotes_gpc()` displays a warning. * Remove unused Minz_Helper::stripslashes_r `Minz_Helper::stripslashes_r` is no longer used. It's last user was `Minz_Request::magicQuotesOff`
2019-12-02Add Rezad to credits (#2699)Gravatar Frans de Jonge
See https://github.com/FreshRSS/FreshRSS/pull/2662#issuecomment-553575705
2019-11-27i18n german translations (#2690)Gravatar Sebastian K
started translating open todos
2019-11-26FIX email token check if not in user-config (#2686)Gravatar Purexo
* FIX email token check if not in user-config * fix missing semicolon
2019-11-22Start 1.15.4-devGravatar Alexandre Alapetite
2019-11-22Merge pull request #2683 from FreshRSS/devGravatar Alexandre Alapetite
FreshRSS 1.15.3
2019-11-21Update CHANGELOG.md1.15.3Gravatar Alexandre Alapetite
Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>
2019-11-21Update CHANGELOG.mdGravatar Alexandre Alapetite
2019-11-21Update CHANGELOG.mdGravatar Alexandre Alapetite
2019-11-21Merge branch 'master' into devGravatar Alexandre Alapetite
2019-11-21Bump to FreshRSS 1.15.3Gravatar Alexandre Alapetite
2019-11-21Release 1.15.3Gravatar Alexandre Alapetite