frontend: Implement 'invisible mode' feature.

Transitions the frontend of the web app to no longer use the
user status `away` field for setting a user's activity status
to be 'unavailable' (which is now a deprecated way to access
a user's `presence_enabled` setting).

Instead we now directly use and update the user's `presence_enabled`
setting for this feature.

Renames frontend code related to the feature to `invisible_mode`
vs `away`.

We lose node test coverage in `user_status.js` because we are now
using `channel.patch` to send these user setting updates to the
server.

Removes the temporary updates to `server_events_dispatch.py` (and
related tests) made in a previous commit, since we no longer have
or need the `away_user_ids` set.
This commit is contained in:
Lauryn Menard
2022-09-21 15:49:36 +02:00
committed by Tim Abbott
parent b2e0b5187d
commit d5b7551f09
18 changed files with 68 additions and 228 deletions

View File

@@ -45,7 +45,7 @@ function setup_settings_label() {
settings_label = {
// settings_notification
presence_enabled: $t({
defaultMessage: "Display my availability to other users when online",
defaultMessage: "Display my availability to other users (invisible mode off)",
}),
send_stream_typing_notifications: $t({
defaultMessage: "Let subscribers see when I'm typing messages in streams",