It would be nice if in your Nextcloud you could relay your own status to other users. So they know what you are doing.
A lot of modern communication platforms have statuses. Something like that would be useful for Nextcloud as well. That way you can signal that you are busy, on holiday, on site somewhere etc.
To be extended
user_status
id
(unsigned int, not null, autoincrement)user_id
(string, not null)status_type
(string, not null) => available, busy, unavailablestatus_icon
(string) => 1 unicode charactermessage
(string) => custom messagecreated_at
(unsigned int, not null) => unixtime clear_at
(unsigned int) => unixtimeGET /ocs/v1.php/cloud/capabilities
{
"ocs": {
...
"data": {
...
"capabilities": {
...
"user_status": {
"enabled": true
}
}
}
}
}
GET /ocs/v1.php/apps/user_status/api/v1/statuses
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": null
},
"data": [
{
"userId": "admin",
"statusType": "busy",
"createdAt": 1589795903
},
{
"userId": "user",
"statusType": "holiday",
"statusIcon": "馃彎",
"message": "On Vacation",
"createdAt": 1589795903,
"clearAt": 1589795904,
}
]
}
}
Allowed parameters:
limit
offset
GET /ocs/v1.php/apps/user_status/api/v1/statuses/admin
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": null
},
"data": {
"userId": "admin",
"statusType": "busy",
"createdAt": 1589795903
}
}
}
GET /ocs/v1.php/apps/user_status/api/v1/status
{
"ocs": {
"meta": {
"status": "ok",
"statuscode": 200,
"message": null
},
"data": {
"userId": "admin",
"statusType": "busy",
"createdAt": 1589795903
}
}
}
Set a new status:
Req: PUT /ocs/v1.php/apps/user_status/api/v1/status
Clear status:
Req: DELETE /ocs/v1.php/apps/user_status/api/v1/status
The APIs should respect the sharing privacy settings. (e.g. only allow to fetch status within own groups, etc.)
To be extended.
It would be nice to set a certain time span or end date for a status, e.g. "Holiday until 17.05.2020".
@go2s Yes, the plan is to have a "Clear status in 1 hour / 1 day / 1 week" feature.
Holiday
Nitpick: this is a bit specific. How about unavailable, which covers vacation, out of office and being sick
I think the reason, why someone is unavailable, provides a good value for communication, because you can express a grading. If someone is sick or on vaction, you might get no answere, but if someone is out of office, or doing homeoffice, you might get answer.
Fair enough, out of office does not mean unavailable. But being sick, public holiday and vacation can be seen as unavailable IMO :)
@go2sh You will have the ability to set a custom icon and custom message like 馃尨 On Vacation
or 馃 On sick leave
.
The status should really be on a lower level:
Ah nice, that wasn't clear to me. :-)
So for mobile it would be great to have it in:
@rullzer @jancborchardt Should the user-status be visible on public pages as well or should it only be visible to other users?
@rullzer @jancborchardt Should the user-status be visible on public pages as well or should it only be visible to other users?
O that is a good question.
For now I guess not. we already have privacy controls for the avatar. So we don't always (or by default not even) show it. So I guess for now status should not be shown on public pages. Since it can leak even more sensitive info.
Let's keep this open to track further improvements and client parity.
ToDo for a follow-up PR:
Notes from @jancborchardt:
Followup PR: #22109
Pull-Request in Nc/Vue:https://github.com/nextcloud/nextcloud-vue/pull/1259
@georgehrke I'm starting to use vuex in our app. At times i only see the user status data in the stores state:
(note the url of the wiki app and the mixed mutations: wikis
from our app and then loadStatusFromServer
)
How can we isolate the two stores from each other?
@azul That is an issue in the devtools, see https://github.com/vuejs/vue-devtools/issues/430.
Vuex itself will work correctly though.
Edit: you can just disable User Status in the apps management, if it's causing too many issues for you
@georgehrke You're right - it's just in the dev tools. The issue in my code was a different one. Thanks for the hints. :smile:
Follow-up Issues:
Indicator on Top Right Avatar: https://github.com/nextcloud/server/issues/22451
Client Implementation Tracking: https://github.com/nextcloud/server/issues/22452
Most helpful comment
@go2s Yes, the plan is to have a "Clear status in 1 hour / 1 day / 1 week" feature.