* New feature: shareable user query
Share the output of a user query by RSS / HTML / OPML with other people through unique URLs.
Replaces the global admin token, which was the only option (but unsafe) to share RSS outputs with other people.
Also add a new HTML output for people without an RSS reader.
fix https://github.com/FreshRSS/FreshRSS/issues/3066#issuecomment-648977890
fix https://github.com/FreshRSS/FreshRSS/issues/3178#issuecomment-769435504
* Remove unused method
* Fix token saving
* Implement HTML view
* Update i18n for master token
* Revert i18n get_favorite
* Fix missing i18n for user queries from before this PR
* Remove irrelevant tests
* Add link to RSS version
* Fix getGet
* Fix getState
* Fix getSearch
* Alternative getSearch
* Default getOrder
* Explicit default state
* Fix test
* Add OPML sharing
* Remove many redundant SQL queries from original implementation of user queries
* Fix article tags
* Use default user settings
* Prepare public search
* Fixes
* Allow user search on article tags
* Implement user search
* Revert filter bug
* Revert wrong SQL left outer join change
* Implement checkboxes
* Safe check of OPML
* Fix label
* Remove RSS button to favour new sharing method
That sharing button was using a global admin token
* First version of HTTP 304
* Disallow some recusrivity
fix https://github.com/FreshRSS/FreshRSS/issues/6086
* Draft of nav
* Minor httpConditional
* Add support for offset for pagination
* Fix offset pagination
* Fix explicit order ASC
* Add documentation
* Help links i18n
* Note about deprecated master token
* Typo
* Doc about format
* More WebSub doc
* UI for WebSub + more documentation
And spellcheck Frech
* Links to WebSub doc from readme
* Add link to WebSub doc in admin interface
* Fix checkbox
* Plural
* Use constants for path to TOS
* improve comments
* TOS title moved to template
* TOS available via config menu
* CSS: improve handling of content of TOS/about
* give info about set/unset TOS in system config
* fix target
* i18n FR
* i18n DE
Before, the ignore info were stored in a different file which was a bit cumbersome
for new comers. Now, this info is stored directly in the translation file as a
comment.
Before, there was no way of telling translators that a previously translated string
was in need of a new translation. Now, the dirty information is there to convey that
info.
* add stats menu into subscription management menu
* delete stats menu entry from dropdown menu
* Delete aside_stats.phtml
* Update aside_subscription.phtml
Translations had quite a lot of cleaning in late:
* Removed some unused keys
* Added some ignores
* Applied a `cli/manipulate.translation.php -a format`
* Ignore i18n gen.dir key
* Add a makefile target to update an i18n key
* Mark some i18n keys to ignore
* Reformat i18n files correctly
* Make i18n keys sort case-sensitive
Calling `make i18n-format` was always inverting 4 lines:
- gen.date.dec with gen.date.Dec
- and gen.date.nov with gen.date.Nov
I don't know why these particular lines and not the others, but it
appeared the sort function was case insensitive due to the
`SORT_FLAG_CASE` flag passed to the `ksort` function. Removing this flag
makes the calls to the formatter idempotent and more reliable.
Unfortunately it moves a lot of lines since the `_` character is
considered differently.
* Check i18n files are correctly formatted on Travis
* Add new last_login param to default user config
* Add English translation strings for last login feature
* Update last_login when user successfully logs in.
* Add last_login column to manage users screen
* Add last_login to user details screen
* Remove accidental docker-compose.yml
* Fix whitespace
* Use last modified time for config file
* Remove last_login field from default user config
* Touch user configuration file upon succesful login
* Add translations with todos
* Fix whitespace
* Use last_user_activity
* Semi-colomn
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
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
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.
* 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.
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