Take advantage of PHP7+ null-coalescing operator `??` to make code more standard, shorter, and faster instead of custom function with no extra functionality.
Allows code to be better tested and fix two PHPstan errors:
```
------ -----------------------------------------
Line app/Controllers/configureController.php
------ -----------------------------------------
410 Cannot unset offset 'rid' on string.
------ -----------------------------------------
------ ------------------------------------
Line lib/Minz/FrontController.php
------ ------------------------------------
70 Cannot unset offset 'c' on string.
71 Cannot unset offset 'a' on string.
------ ------------------------------------
```
https://github.com/FreshRSS/FreshRSS/issues/4016
Should be done during build and not during entrypoint, to avoid modifying a potential volume (e.g. mounting the source code as a volume is used during development).
Silence irrelevant NPM errors when a test fails. See e.g. https://github.com/FreshRSS/FreshRSS/runs/3999501244?check_suite_focus=true
```text
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! freshrss@ markdownlint: `markdownlint '**/*.md'`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the freshrss@ markdownlint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/runner/.npm/_logs/2021-10-25T16_15_34_166Z-debug.log
```
* Don't use Chrome or indeed Firefox on Android
Would close#1963. But I will not finish this PR because the idea that every single website on the internet should have to do this is absolutely ridiculous.
* add pwa manifest
Add a pwa manifest as defined in https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Installable_PWAs
- creates shortcuts without the browser frame
- has a splash screen
- has an independent view stack than the browser one
* update manifest as per pwabuilder.com
* add 32x32 and 48x48 icon config
* enhance manifest spec compliance
* change as per suggestions
* Update app/layout/layout.phtml
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
* fix mobile icon padding
* remove screen auto rotation
* change theme color to white
* Move meta
(Should not be in the referrer condition)
* JSON HTTP cache
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Efforts to reduce the resources used by CI:
* Only one git checkout
* Exclusion of irrelevant directories for several commands
* Fix some rtlcss warnings
* Move some commands from tests.yml to composer.json to make them reusasble
* Initial efforts to take avantage of all that from `make` (help welcome)
Adding the crontab as part of the image build makes it more complicated
to add custom entries to the crontab. Adjusting the image and entrypoint
to make it so that the crontab is only added when CRON_MIN is set
simplifies having a custom crontab.