aboutsummaryrefslogtreecommitdiff
path: root/app
AgeCommit message (Collapse)Author
2020-04-08Swap shortcuts for mark all articles as read / mark previous articles as ↵Gravatar Alexandre Alapetite
read (#2881) * Swap shortcuts for mark all articles as read / mark previous articles as read #fix https://github.com/FreshRSS/FreshRSS/issues/2865 Follow-up of https://github.com/FreshRSS/FreshRSS/pull/2843 * <kbd>⇧ Shift</kbd>+<kbd>R</kbd> to mark all articles as read; * <kbd>Alt ⎇</kbd>+<kbd>r</kbd> to mark previous articles as read. * i18n
2020-04-05[i18n] Update French translations (#2878)Gravatar Damien Leroy
* Add french translate * Fix documentation broken url
2020-04-03[i18n] Update Occitan language (#2873)Gravatar Quent-in
* Update admin.php * Update user.php * Update index.php * Update gen.php * Update feedback.php * Update conf.php * Update sub.php
2020-04-01Implement negation for searching by date intervals (#2869)Gravatar Alexandre Alapetite
* Implement negation for searching by date intervals #fix https://github.com/FreshRSS/FreshRSS/issues/2866 Allow searching for e.g. `!date:P1W` to exlude all articles newer than one week. More generally, allows exclusion on some date intervals. * Fix OR
2020-04-01Fix fetch content for complex HEAD (#2867)Gravatar Alexandre Alapetite
* Fix contentSelectorPreviewAction Was not compatible with https://github.com/FreshRSS/FreshRSS/pull/2588 * Fix lib_phpQuery for <head ...> #fix https://github.com/FreshRSS/FreshRSS/issues/2864 * Replace split() by explode() for PHP7 compatibility https://php.net/str-split * Fix for document with a `<head>` tag more complicated, like `<head profile="http://www.w3.org/1999/xhtml/vocab">`
2020-04-01API return proper newestItemTimestampUsec (#2854)Gravatar Alexandre Alapetite
* API return proper newestItemTimestampUsec #fix https://github.com/FreshRSS/FreshRSS/issues/2853 * Minor naming * Add newestItemTimestampUsec for labels * Do not use t.name after all
2020-03-31Fix action filter when filtering on author (#2863)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/2806 Bug: array instead of string
2020-03-31Allow feed to be actualized after being truncated (#2862)Gravatar Alexandre Alapetite
Before, on had to wait for the cache to expire before being able to refresh a feed that had been truncated via the Web interface. Now, one can "delete all articles" and hit "actualize" imediately after without problem. Useful for testing filters, debugging e.g. https://github.com/FreshRSS/FreshRSS/issues/2806
2020-03-28Loader animation while waiting for first articles (#2845)Gravatar Alexandre Alapetite
* Loader animation while waiting for first articles Especially useful when a slow search is being performed. Thanks to one new flush at the right time, the left colum and top menu will be there, waiting for the articles to come. This avoids layout flashes (the left column used to take the full width while waiting for articles). For optimal use, this assumes that the deployment has a proper buffering configuration, such as in our official Docker image (also when using Træfik as a reverse proxy in front). Might not work just as well with other Apache or nginx setups. * Fix on mobile And simplified CSS * Properly hide the loader It was not possible to find a position where the loading animation would be always hidden after load, so change strategy to hide it automatically by CSS when the actual content has arrived
2020-03-23Shortcut mark previous articles as read (#2843)Gravatar Alexandre Alapetite
* Shortcut mark previous articles as read Address part of https://github.com/FreshRSS/FreshRSS/issues/2836 The shortcut [shift]+[r] now marks previous articles as read; The previous action of marking all articles as read is now achieved by [alt]+[r] So this is a slight breaking change, but I like the logic of the upward-facing [shift] arrow to hint at previous articles, while [alt] is more like "all", at least to my eyes :-) * Update app/i18n/nl/conf.php Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com> * [⇧ Shift] / [Alt ⎇] With standard Unicode signs * <kbd> + CSS styling * Missing themes Tested with all themes * Travis CSS Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-03-22Update and fix pt-br translation (#2833)Gravatar fabianski7
* Update and fix pt-br translation * Update app/i18n/pt-br/install.php * Update app/i18n/pt-br/conf.php * Update app/i18n/pt-br/sub.php * Update app/i18n/pt-br/index.php Co-authored-by: Fabianski <yes@its.me> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-03-22More inactive cutoffs (#2831)Gravatar Anton Smirnov
* Fill additional cutoffs * Update phpdoc * Add translation strings * Update app/i18n/fr/gen.php Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Add Dutch translation Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-03-21Revert minor Spanish translations (#2830)Gravatar Alexandre Alapetite
#Fix https://github.com/FreshRSS/FreshRSS/pull/2823
2020-03-21Add translate (#2823)Gravatar loft17
Add remaining translations
2020-03-09Option to show/hide favicons (#2821)Gravatar Alexandre Alapetite
* Option to show/hide favicons #fix https://github.com/FreshRSS/FreshRSS/issues/2819 * Also for subscription list
2020-03-08Improve login and registration pages (#2794)Gravatar Marien Fressinaud
* Keep the user on login page on failure * Show an error if username already exists * Check the password format in the backend * Return a better message if username is invalid * Add a title to the login page * wip: Improve look of login and register pages * Set a capital M in username help message On the registration page, username tip started with a minuscule, while the password tip started with a capital. * Change message if username is taken
2020-03-08Fix share warning with Wallabag (#2817)Gravatar Alexandre Alapetite
#fix https://github.com/FreshRSS/FreshRSS/issues/2812 Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2020-03-01[UI] Add RTL support with RTLCSS (#2776)Gravatar Frans de Jonge
* Add dir info to gen.php & install.php! * Add `make rtl` command Using rtlcss because it has actually has a command-line application!
2020-02-29Better performance with yield (#2588)Gravatar Alexandre Alapetite
* Better performance with yield Largely decrease the time to first byte, and reduced memory consumtion. Before, we used to make several copies in memory of the whole list of articles before sending them to the client. Now streamed as they are processed. * Travis
2020-02-29Fallback to GUID when entry title is empty (#2813)Gravatar Alexandre Alapetite
When entries have an empty title, our UI was a bit broken. In this (rare) case, we revert to GUID, which is always non-empty.
2020-02-29Fix wrong foreach in applyFilterActions (#2809)Gravatar shn7798
2020-02-29No pre for enclosure-description (#2808)Gravatar Alexandre Alapetite
* No pre for enclosure-description #fix https://github.com/FreshRSS/FreshRSS/issues/2807 In browsers, the styling `white-space:pre-line` will be applied by CSS, but no styling will be done for clients via API. * Corresponding CSS change
2020-02-13Enhance content path feature (#2778)Gravatar Julien-Pierre Avérous
- Add a maintenance section to be able to clear cache and force reload a feed. - Add an icon next to path field to show a pop-up with the result of the content path. Co-authored-by: Frans de Jonge <fransdejonge@gmail.com> Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr> Co-authored-by: Marien Fressinaud <dev@marienfressinaud.fr>
2020-01-24[i18n] Update conf.php Spanish translation (#2781)Gravatar skrlet13
More accurate translation
2020-01-20Fix null array index bug for PHP 7.4 (#2780)Gravatar Alexandre Alapetite
Fix https://github.com/FreshRSS/FreshRSS/issues/2775 Especially for PHP 7.4+ "Array-style access of non-arrays" https://php.net/migration74.incompatible
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-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-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-28Fix labels dropdown not scrollable after a while (#2727)Gravatar romibi
2019-12-28Update zh-cn (i18n) (#2730)Gravatar 石渠清心
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-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-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 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-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-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-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-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-21Do not obbey rel=self if WebSub is disabled (#2659)Gravatar Alexandre Alapetite
* Do not obbey rel=self if WebSub is disabled https://github.com/FreshRSS/FreshRSS/issues/2654 * Correct variable https://github.com/FreshRSS/FreshRSS/pull/2659#discussion_r347552063 * Update app/Controllers/feedController.php
2019-11-21Fix updateTagAttribute (#2682)Gravatar Alexandre Alapetite