Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automation improvements and handling of custom messages fur user status #41441

Open
miaulalala opened this issue Nov 13, 2023 · 2 comments
Open
Assignees
Labels
1. to develop Accepted and waiting to be taken care of feature: status

Comments

@miaulalala
Copy link
Contributor

miaulalala commented Nov 13, 2023

Follow up to #31177

Summary

Discussed and approved by @jancborchardt

The current user status automation has no hierarchy for when a status should be overwritten by the automation, and when not. This leads to behaviour such as the automation overwriting custom status messages even though the users intention is not to show the automation message.

For clarity's sake, the following definitions apply:
status or user status: the dot next to the user avatar - green dot, yellow half moon, red circle with white line, none (for invisible):
image

Status message or message: The combination of emoji and custom text displayed below a users name:
image

  1. Clean up is_user_defined status field in the code
    Currently, this field is not worked with properly and is used inflationary - making this field practically useless. When cleaned up, use this field to determine who set the status message, not the user status.

  2. Decouple the user status and the status message.
    Implement the following:

    • status hierarchy
    1. INVISIBLE
    3. DND
    4. AWAY
    5. ONLINE

    The new "BUSY" status can be removed / ignored for now. The higher status overwrites the lower status but not in reverse.

    • Message hierarchy and fixed CONSTs for these messages
    1. IN A CALL
    2. OUT SICK 
    3. VACATION
    4. OUT OF OFFICE
    5. IN A MEETING
    6. CUSTOM STATUS

    Higher message can overwrite lower ones but not in reverse.

  3. Leave the status to the availability automation and the heartbeat. A user can overwrite their status according to the hierarchy. The availability automation should only ever overwrite an online status. Check if the OOO status needs to adjust the status too after
    Out-of-office: Update user status #41378 was implemented.

  4. Add a restoration mechanism that allows to restore the custom message if one was set before a message type 1-5 was written. (Or adjust the backup functionality to work this way). A new line in the DB should be written for any new message.

  5. A new user defined message must overwrite any current message, automated or not. For this to work, a timestamp comparison is needed, and that is why we need 4. If the automated message was set before the custom message, the custom message takes precedence.

  6. Extend documentation on how to set up "TRANSPARENT" calendar events to make the automation more accurate, and mention the automation in the Calendar documentation.

@miaulalala miaulalala added the 1. to develop Accepted and waiting to be taken care of label Nov 13, 2023
@miaulalala miaulalala self-assigned this Nov 13, 2023
@ChristophWurst
Copy link
Member

sounds like a plan

@miaulalala miaulalala changed the title feat(user_status): Automation improvements and handling of custom messages Automation improvements and handling of custom messages fur user status Apr 26, 2024
@tomdereub
Copy link

Is there a option to disable user status automation ? In my company, we prefer to set up the status manually, and for now it's modified automatically each time we have an event in calendar, but we use events also just to organize ourselves and get a notification not to forget something. It's painfull to set up each event as "not busy" each time we create an event (3 clics on thunderbird, and has to think to do this, impossible for a 30 persons team...).
If it doesn't already exists, it would be great to be able to enable or disable status automation with calendar, and just keep online/offline status as automatic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of feature: status
Projects
Status: 📄 To do
Development

No branches or pull requests

4 participants