Commit Graph

771 Commits

Author SHA1 Message Date
Alexis Degrugillier
caeb660f29 Add a way to disable/enable users (#3056)
If you want to block users without deleting their account, you can now
disable them from the interface.
2020-06-14 19:50:09 +02:00
Petra Lamborn
7a748e25ab Fix inline code tag contrast in ansum.css (#3050)
* Remove line from ansum.css, fixing contrast

As with #3047 #3048, current behavior produces very pale-on-white text in inline code tags

* Update CREDITS.md

#3048 and related
2020-06-13 00:22:14 +02:00
Alexandre Alapetite
e6105fdf61 Fix API quickadd (#3051)
* Fix API quickadd

#fix https://github.com/FreshRSS/FreshRSS/issues/3049

* Response query, streamName
2020-06-13 00:21:35 +02:00
Petra
f34f1ff8f1 Edit mapco.css (#3048)
Otherwise end up with (almost) white-on-white
2020-06-10 23:08:02 +02:00
Pablo Caro
138d9ca658 Return the correct Content-Type for SVG favicons (#3032)
* Return the correct Content-Type for SVG favicons

* Use mime_content_type to check file type

* Use tab instead of spaces

* Remove extra blank lines

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

* Update f.php

* Better obey HTTP/1.1 304 Not Modified rules about headers https://tools.ietf.org/html/rfc2616#section-10.3.5
* Do not fail if the optional `fileinfo` is not available
* Handle more cases such as PNG, GIF, BMP...

* Add Content-Type for default favicon

* Do not repeat HTTP headers in HTTP 304 response

According to https://tools.ietf.org/html/rfc2616#section-10.3.5 it is better not to repeat HTTP headers in a HTTP 304 Not Modified response

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-06-06 23:29:46 +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
Alexis Degrugillier
d4554fa087 Change add feed action (#3027)
* Docker Alpine 3.12 (#3025)

https://alpinelinux.org/posts/Alpine-3.12.0-released.html
With PHP 7.3.18 (from 7.3.17) (and Apache 2.4.43 unchanged).
No other significant change spotted

* Ensure feed attributes are used before load

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-06-05 10:09:31 +02:00
Alexis Degrugillier
27f0b61418 Fix form layout (#3028)
The login form layout was broken for BlueLagoon and Screwdriver themes. The 'about' link was
displayed next to the form since the later didn't have a height. I removed completely the
rule since it seems that it has no effect, except the one aforementioned.
2020-06-03 19:17:17 +02:00
Alexandre Alapetite
17baf9970f Fix alert-warn background (#3015)
Fix minor CSS regression from
https://github.com/FreshRSS/FreshRSS/pull/2990
2020-05-30 14:36:46 +02:00
Alexandre Alapetite
0d74cb8a42 Fix JS show password in install (#2999)
The button for showing the password was not working in the install.
Updated JavaScript file to ES6 at the same time.
2020-05-25 19:03:42 +02:00
Alexandre Alapetite
4b2698ff55 Alternative-Dark theme use common template (#3000)
* Alternative-Dark theme use common template

#fix https://github.com/FreshRSS/FreshRSS/issues/2883

* Lint
2020-05-25 19:03:10 +02:00
Marien Fressinaud
a0f6e66e28 fix: Fix .stick class for older Webkit versions (#2995)
It looks like inputs had a light margin on older Webkit versions, making
the inputs slightly smaller than buttons in a .stick container.

Reference: https://github.com/FreshRSS/FreshRSS/pull/2938#issuecomment-632429861
2020-05-22 10:54:22 +02:00
Alexandre Alapetite
3bef867a44 Better hide spinner (#2990)
Fix https://github.com/FreshRSS/FreshRSS/issues/2986#issuecomment-631396735
By CSS, and also by JS
https://framagit.org/nicofrand/xextension-threepanesview/-/issues/10
2020-05-21 12:17:21 +02:00
Alexandre Alapetite
533ac05f4e Fix Dark load (#2987)
#fix https://github.com/FreshRSS/FreshRSS/issues/2986 😈😛
2020-05-20 12:02:01 +02:00
Alexandre Alapetite
0442243037 Fix nav_menu mark-as-read (#2909)
* Fix nav_menu mark-as-read

#Fix https://github.com/FreshRSS/FreshRSS/issues/2905
Fix regression from https://github.com/FreshRSS/FreshRSS/pull/2588

We need info about the first item (id_max) before being able to output
nav_menu. Before https://github.com/FreshRSS/FreshRSS/pull/2588 we used
to output everything in memory before starting to produce an output. Now
that we stream the output, we need a temporary buffer until we have
received the first item/article.

* Repair loading page

* Simplify CSS

Make it work in Chrome as well

* Lint

* Partial revert

* Base max_id solely on current time
2020-05-18 18:45:47 +02:00
Alexandre Alapetite
83b5944dcb Stream instead of memory copy of SimplePie entries (#2972)
* Stream instead of memory copy of SimplePie entries

https://github.com/FreshRSS/FreshRSS/issues/2952

* Undo lines delete

* Typo

* Remove unaccessible code

https://github.com/FreshRSS/FreshRSS/pull/2972/files#r425624163

* Back-compatibility for Feed->entries

https://github.com/FreshRSS/FreshRSS/pull/2972/files#r425631913
2020-05-17 00:04:51 +02:00
Alexandre Alapetite
bba9535626 jQuery 3.5.1 (#2982)
Minor version
https://blog.jquery.com/2020/05/04/jquery-3-5-1-released-fixing-a-regression/
2020-05-16 16:44:15 +02:00
Alexandre Alapetite
17539668ea Fix bad relogging clients (#2961)
* Fix bad relogging clients

Some clients (like EasyRSS) are still using the old HTTP Authorization
header after having logged to log in with another user.
We should not attempt to process Authorization headers during a login
request

* Typo

* A bit safer

Avoid null exception
2020-05-08 21:54:45 +02:00
Alexandre Alapetite
0fc71fdf42 API relaxed detection of short/long item ID forms (#2957)
#Fix https://github.com/FreshRSS/FreshRSS/issues/2956
Bug/feature introduced by https://github.com/FreshRSS/FreshRSS/pull/2947 (which was following the specification better)

The original code `strpos($e_id, '/') !== null` was wrong (it can never be null, only false or integer), but the idea was to check whether the client was sending a short form (decimal) or long form of the ID (hexadecimal with prefixes including slashes). Since it has not given problem until my recent typo fix, this means that the short form is apparently not used by the clients we tested. But now that we are back to following the specification better, it looks like a client such as Reeder 4 is sending an hexadecimal form without a prefix, which breaks the detection.

This patch changes the detection, which should work in all known cases AND comply with the specification

https://feedhq.readthedocs.io/en/latest/api/terminology.html#items
2020-05-07 18:33:40 +02:00
Marien Fressinaud
cc7a784cbe Add/mobile feed configuration (#2938)
* Show subscription management button on mobile

* Show aside box-shadow on Origine only when opened

* Reduce padding of Origine posts on mobile

* Shrink stick component with long input

* Show Origine configure icons on mobile

* Show the slider full width on mobile

* Improve the look of forms on mobile

* Fix Ansum theme

* Fix BlueLagoon theme

* Fix Dark theme

* Fix Flat theme

* Fix Mapco theme

* Fix Origine-compact theme

* Fix Pafat theme

* Fix Screwdriver theme

* Fix Swage theme

* Fix Alternative-Dark theme

* Apply RTL script on themes

Co-authored-by: triatic <42704418+triatic@users.noreply.github.com>
2020-05-06 19:55:45 +02:00
Alexandre Alapetite
5e18ca8408 Fix warning with FeedReader (#2947)
FeedReader 2.10.0 sends something like
`T=cd3421a73e8a09f955449d02beaf9593b0c0265cZZZZZZZZZZZZZZZZZ&r=user/-/state/com.google/read&i=-/tag%3Agoogle.com&i=-/2005%3Areader/item/0005a4b97779db22`
to `/api/greader.php/reader/api/0/edit-tag`

The first `i=-/tag/google.com` is wrong and cannot be converted to an entry ID.
This resulted in:

> PHP Warning:  gmp_init(): Unable to convert variable to GMP - string is not an integer in /var/www/FreshRSS/p/api/greader.php on line 35
2020-05-05 17:13:18 +02:00
Alexandre Alapetite
b1aac20839 Fever integer type for numbers (#2946)
* Fever integer type for feed ID

#Fix
https://github.com/FreshRSS/FreshRSS/issues/2940#issuecomment-623022435

* Fix feed_id

* Ensure string for entry ID

To be compatible with 32-bit platforms.
Before, the type was inconsistent depending on architecture + database

* Integer for entry count functions
2020-05-03 13:39:16 +02:00
Alexandre Alapetite
1bb4c75db7 Fever integer type for last_refreshed_on_time (#2944)
#Fix https://github.com/FreshRSS/FreshRSS/issues/2940
https://feedafever.com/api
2020-05-02 20:04:51 +02:00
Alexandre Alapetite
f0db70dcb0 API Use string type for Usec (#2935)
#Fix https://github.com/FreshRSS/FreshRSS/issues/2934
2020-04-30 23:17:46 +02:00
Julien-Pierre Avérous
acca89505b Enhance the way help elements are displayed (#2911)
* - Always display help under the targeted element.
- Use same help place for HTTP authentication in 'add' feed view than in 'update' feed view.
- Move help under input field in register view, as all other places (homogeneity).

* - Don't use "!important" as suggested by @Alkarex.
2020-04-20 23:27:17 +02:00
Alexandre Alapetite
e9213e89f4 Fix CSS Edge glitch in archiving options (#2906)
With Edge, only setting `.hidden = true` does not make the element and
sub-elements properly visible.
Should not make any difference for other browser.
2020-04-18 11:50:35 +02:00
Alexandre Alapetite
bdc4da6ad0 Expose podcast in API (#2898)
* Expose podcast in API

Expose RSS enclosures in our API, e.g. for clients supporting podcasts

* PHP CS?

* Annoying linter

* Light optimisation
2020-04-16 18:11:26 +02:00
Alexandre Alapetite
f2e0f051aa Fix JS for statistics repartition select form (#2896)
* Fix JS for statistics repartition select form

Error was: `s.form is null in extra.js:166:7`
At the same time, disable the form and clears the value while waiting
for the next page to load, to better understand what is happening.

* Whitespace
2020-04-12 16:40:06 +02:00
Alexandre Alapetite
14fa3f2781 jQuery 3.5.0 (#2895)
https://blog.jquery.com/2020/04/10/jquery-3-5-0-released/
2020-04-12 11:37:50 +02:00
Frans de Jonge
04e5f5b2e4 Minor stylelint exception formatting change (#2889)
Slightly tidier
2020-04-10 18:51:59 +02:00
kinoushe
da67489df2 Fix search input styling in Safari (#2887)
* Fix search input styling in Safari
#fix https://github.com/FreshRSS/FreshRSS/issues/2885

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-04-10 14:22:02 +02:00
Alexandre Alapetite
847ad278a4 Fix BlueLagoon and Screwdriver hover title (#2884)
#fix https://github.com/FreshRSS/FreshRSS/issues/2755
Follow-up of
https://github.com/FreshRSS/FreshRSS/pull/2882#issuecomment-611136775

https://stackoverflow.com/questions/2837057/what-has-bigger-priority-opacity-or-z-index-in-browsers
2020-04-09 00:25:08 +02:00
Alexandre Alapetite
f9e92a9286 Fix CSS hover long title (#2882)
* Fix CSS hover long title

#fix https://github.com/FreshRSS/FreshRSS/issues/2755

* Fix Ansum

* Fix Mapco
2020-04-08 20:52:15 +02:00
Alexandre Alapetite
0d235cbadd Swap shortcuts for mark all articles as read / mark previous articles as 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-08 13:17:20 +02:00
Alexandre Alapetite
fee7d8b6a7 Full with for audio UI (#2877)
#fix https://github.com/FreshRSS/FreshRSS/issues/2875
2020-04-04 20:53:05 +02:00
Alexandre Alapetite
5858aaf7fc API return proper newestItemTimestampUsec (#2854)
* 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-04-01 02:08:45 +02:00
Alexandre Alapetite
ecd05088fa Simplify CSS remove z-index (#2861)
* Simplify CSS remove z-index

#fix https://github.com/FreshRSS/FreshRSS/issues/2860
Improvement of https://github.com/FreshRSS/FreshRSS/pull/2845

22916d6a3e (r38143737)

* Fix when .nav_menu is not loaded

This ability was lost with the last styling iterations
2020-03-30 22:00:49 +02:00
Alexandre Alapetite
c79c7640a2 API return OK for an empty request (#2855)
Fix https://framateam.org/freshrss/pl/yozcezrnufno9eut3173d4wpry
2020-03-30 19:17:12 +02:00
Alexandre Alapetite
cb4d009ebb GReader API consistent default category (#2840)
* GReader API consistent default category

#Fix https://github.com/FreshRSS/FreshRSS/issues/2839

* Also for subscription/list
2020-03-28 12:35:21 +01:00
Alexandre Alapetite
22916d6a3e Loader animation while waiting for first articles (#2845)
* 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-28 12:33:57 +01:00
Frans de Jonge
182b7b4dde Update RTL CSS files (#2848)
* Update RTL CSS files

* Add RTL for Alternative-Dark, cf. https://github.com/FreshRSS/FreshRSS/pull/2811
* Update RTL for base/Origine
* Also include a `*.rtl.rtl.css` deletion in `make rtl` to work around https://github.com/MohammadYounes/rtlcss/issues/64

* forgot to commit Makefile
2020-03-25 20:08:28 +01:00
Alexandre Alapetite
a7b72481e7 Shortcut mark previous articles as read (#2843)
* 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-23 23:05:01 +01:00
Alexandre Alapetite
8fabed337a Reset scroll (#2842)
Address some of https://github.com/FreshRSS/FreshRSS/issues/2836
This patch resets the scrollbar to the top when a FreshRSS page is
initialised.
Makes sure that when a FreshRSS page is restored in a Web browser
session, we do not hit the problematic situation when the content is
refreshed but the scrollbar moved back to where it was, potentially
erroneously marking as read many as read, of landing on the wrong focus.
2020-03-23 22:29:26 +01:00
Alexandre Alapetite
cd49e9819b New core-extensions to allow Docker volumes for third-party extensions (#2837)
* New core-extensions to allow Docker volumes for third-party extensions

#Fix https://github.com/FreshRSS/FreshRSS/issues/2650
Split our extensions directory into two:
1) Core extensions shipped with FreshRSS in ./lib/core-extensions/
2) Third-party extensions modified by end-users in ./extensions/ which
can easily be mounted as a Docker volume

* Example of Docker Compose with extensions

* Back-compatibility + fix array merge bug
2020-03-22 16:31:20 +01:00
fabianski7
7380cd02ec Alternative-Dark theme (#2811)
* Alternative-Dark theme

* Update template.css

* Update adark.css

* Update adark.css

* Update template.css

* Updates and fixes

* Remaining minor whitespace

* Remaining minor Travis

* order/properties-order

Co-authored-by: Fabiano <defabiano@tutanota.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2020-03-21 21:36:23 +01:00
Marien Fressinaud
51edbc1578 Improve login and registration pages (#2794)
* 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-08 00:14:29 +01:00
Frans de Jonge
25666ec5d3 [UI] Add RTL support with RTLCSS (#2776)
* Add dir info to gen.php & install.php!

* Add `make rtl` command

Using rtlcss because it has actually has a command-line application!
2020-03-01 21:15:17 +01:00
Alexandre Alapetite
e7c5b03a4d GReader remove unsused parameter (#2816) 2020-02-29 22:30:19 +01:00
Alexandre Alapetite
0f94402b7e Better performance with yield (#2588)
* 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-29 18:19:09 +01:00
Alexandre Alapetite
925319653d No pre for enclosure-description (#2808)
* 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-29 15:58:31 +01:00