server
server copied to clipboard
User Profile [Meta]
Completed
Base
- [x] https://github.com/nextcloud/server/pull/28751
References
- Profile page ideation https://github.com/nextcloud-gmbh/server/issues/33
- Penpot Mockups https://design.penpot.app/#/dashboard/team/aba21030-65ab-11eb-bbda-03f8ac143bbf/projects/7d7bb720-a2cc-11eb-bb49-81aaa3a367f9
Privacy
- [x] https://github.com/nextcloud/server/pull/29559
- [x] https://github.com/nextcloud/server/pull/29869
Design / Frontend
- [x] https://github.com/nextcloud/server/pull/29482
- [x] https://github.com/nextcloud/spreed/pull/6437
- [x] https://github.com/nextcloud/server/pull/29833
- [x] https://github.com/nextcloud/server/pull/29872
- [x] https://github.com/nextcloud/server/pull/29893
Issues
- [ ] https://github.com/nextcloud/server/issues/30864
- [ ] https://github.com/nextcloud/server/issues/30865
- [x] https://github.com/nextcloud/server/issues/30866
- [ ] https://github.com/nextcloud/server/issues/30867
- [ ] https://github.com/nextcloud/server/issues/30868
- [x] https://github.com/nextcloud/server/issues/30869
- [ ] https://github.com/nextcloud/server/issues/30870
- [ ] https://github.com/nextcloud/server/issues/30871
Miscellaneous
- [x] https://github.com/nextcloud/documentation/issues/7797
- [ ] Tests
- [ ] Set order of profile actions
- Provide additional emails as actions
- Prerequisites:
- [ ] Preserve order and scope of additional emails, the logic for handling this is a prerequisite as visibility must also be preserved https://github.com/nextcloud/server/issues/26866#issue-874793291
- Prerequisites:
So here’s the mockups @nimisha-vijay and I worked on. :) You can also find them on our Penpot org if you have access.
Personal settings
Has a nice redirect / marketing about the new profile feature, directly showing the hovercard:

Profile
Possible sections:
- Description / Bio
- You & this person: Events, mails, Talk messages, shared folders, etc.
- Photos in a nice grid view
- Shared resources: Files, folders, file drop, forms, public deck board, etc.
- (Posts from Social are smth for the dreamworld future ;)
Mobile layout from top to bottom:
- Avatar
- Name
- Role & organization
- Location & time zone
- Primary action
- Other actions
- Description
- You & that person
- Photos
- Shared resources
- etc.
Order of actions
- Book appointment
- Talk to Jim
- Email - mailto: link
- Phone - tel: link
- Website - visit website
- Share a file - opens file picker

And for yourself it would look like this, with the additional edit buttons: Edit profile, Edit photos, Edit items:

Empty content
Viewing another person’s profile which is rather empty, we could move the "You & this person" section to the content since otherwise the content will be a bit unbalanced:

Alternatively we could have an empty-content text which might be better since it keeps content in place:

Whoever is working on this, please let us talk about proper API for clients.
Я всегда за конструктивный диалог.
пн, 30 авг. 2021 г., 09:43 Tobias Kaminsky @.***>:
Whoever is working on this, please let us talk about proper API for clients.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/nextcloud/server/issues/28139#issuecomment-908075825, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVLIXABFLLY6ERLZ72I7OW3T7MSC7ANCNFSM5A4W236A .
When reading this issue and looking at the images I remembered the proposal of #2143.
The aim of that old issue is different (synthetic informations about tags and not about users), yet maybe rereading it while working at this issue could provide some useful suggestions for an extension of this functionality.
Hope that helps!
Whoever is working on this, please let us talk about proper API for clients.
For sure! what do you have in mind? Do we have a similar API used by clients that may be used as reference?
Makes you approachable and shows Nextcloud ecosystem: Book an appointment, Talk to person
How will we do this? Groupware will take care of the appointments integration. Can we register to render arbitrary content on the profile page like we do on the dashboard? As in, Nextcloud server doesn't have any ties on how Calendar or the appointments feature works, but rather Calendar renders a small component on the profile page that renders the appointments button/widget?
Makes you approachable and shows Nextcloud ecosystem: Book an appointment, Talk to person
How will we do this? Groupware will take care of the appointments integration. Can we register to render arbitrary content on the profile page like we do on the dashboard? As in, Nextcloud server doesn't have any ties on how Calendar or the appointments feature works, but rather Calendar renders a small component on the profile page that renders the appointments button/widget?
php API https://github.com/nextcloud/server/blob/bacb4873a1e76ca7cfee8d38b40fdce2474f05cc/lib/public/Profile/IAction.php https://github.com/nextcloud/server/blob/bacb4873a1e76ca7cfee8d38b40fdce2474f05cc/lib/private/Profile/Actions/TwitterAction.php
Thanks. From that code I get that one can only provide links, right? Will we also support running and rendering arbitrary content on the page? Like will the Calendar app be able to load a little widget that, depending on the appointments configurations of the user, renders a button, more than one or none?
Not yet. Widgets are for another version iirc
@ChristophWurst design-wise, it is fine to only provide 1 link to the overview page of the booking that is implemented in Calendar.
https://github.com/nextcloud/calendar/issues/3541 contains the details for the appoinments integration. From the discussion it shows that we'll need a small enhancement of the current API: it has to be possible to only conditionally render an action. That is, when the profile's user has no public appointment configurations, we won't show an action link. Only if there is a target we will.
But I suppose this will be necessary anyway, give that not every user will have a Twitter account.
it has to be possible to only conditionally render an action
I discussed this yesterday with Chris. E.g. also the case with Talk as we need to check if the receiving user is allowed to use Talk, not only the visiting user. I think the conclusion was that returning null on the getTargetUrl would prevent the rendering.