shelf.nu icon indicating copy to clipboard operation
shelf.nu copied to clipboard

[Feature request]: Team member page

Open carlosvirreira opened this issue 1 year ago • 8 comments

Contact Details

No response

Is your feature request related to a problem? Please describe?

I am trying to see all assets provisioned to one user. Now, I have to use filters. I do not get historic data just the currently provided assets to the user.

Describe the solution you'd like

Ideally a page where I can see information on the user and the assets that are under his/her custody.

Visiting team member page https://www.figma.com/design/ykvc0MhPeNLsrJ4tJsKosQ/Shelf-%7C-UX-Scenarios?node-id=5392-12557

Visiting page of team member that has no assets in custody https://www.figma.com/design/ykvc0MhPeNLsrJ4tJsKosQ/Shelf-%7C-UX-Scenarios?node-id=6982-67556

Describe alternatives you've considered

No response

Additional context

No response

carlosvirreira avatar Feb 07 '24 10:02 carlosvirreira

Perhaps make a quick mockup for this @jurrejansen ?

carlosvirreira avatar Feb 09 '24 13:02 carlosvirreira

Extra requirements after looking into bookings, calendars, kits and so on.

As an asset manager, if I have a booking and some other user has given custody of a reserved asset to a colleague. I have the need to get in touch with such custodian.

Scenario: I have to check out 1 booking. The booking contains a Monitor. The monitor has been assigned by another admin to a user (Carlos) - I need to now get in touch with Carlos to locate the asset. Remove the custody and check it out. If I can (From the asset page) click on the block that reads 'In custody of Carlos' and it takes me to a page where I can see the user information + extra fields created by the admin about the user.

I can then get in touch and solve this issue.

  • [ ] Custom fields for user information to store additional contact information

carlosvirreira avatar May 10 '24 11:05 carlosvirreira

I would say that for now we can skip a new team member index and leave it in the Settings area. Instead focus on a Team member page that can provide valuable information.

Screenshot 2024-07-18 at 15 04 17

  • A team member page with Tabs layout
  • Overview tab showing fields and values and simplified UI element showing asset that are in custody of the team member (link that sends user to asset index filtered on the team member/custodian)
  • Bookings tab showing bookings that have/had the team member as the Custodian
  • I was also considering an Assets tab that shows an asset index filtered on asset that are in custody of the team member (not sure how necessary considering the UI element mentioned above)

Screenshot 2024-07-18 at 15 06 09

Visiting team member page https://www.figma.com/design/ykvc0MhPeNLsrJ4tJsKosQ/Shelf-%7C-UX-Scenarios?node-id=5392-12557

Visiting page of team member that has no assets in custody https://www.figma.com/design/ykvc0MhPeNLsrJ4tJsKosQ/Shelf-%7C-UX-Scenarios?node-id=6982-67556

As for additional fields. Currently when a team member is created the lowest amount we could have is a Name. If team member is a user we'll also have an Email, Status, Role and potentially an Avatar image. Maybe we should look into adding more default fields and introducing an Edit view for team members.

Additionally custom fields for Team members seem like a good idea as well. I was thinking of adding Assets and Team members tabs in Settings > Custom fields.

Screenshot 2024-07-18 at 15 13 16

When creating a custom field for Team members we should remove the 'Use for select categories' stuff.

Screenshot 2024-07-18 at 15 15 32

jurrejansen avatar Jul 18 '24 13:07 jurrejansen

Okey lots of good ideas but I feel its a bit of an overkill. Let me write down some thoughts:

  • custom fields are i think a bit of a stretch. There are at least 2-3 modules that i feel this is more important for in terms of functionality than the teamMemeber. Also I am a bit skeptical(for now) for allowing users to store sensitive data and they will do that if we give them custom fields. Wont be surprised if people start storing passwords and stuff.
  • In terms of the tabs and layout, i would do it a bit more simple.
  1. I would drop the overview tab and just have 2 tabs: assets & bookings
  2. TeamMembers only have 3 fields - name, email & role. We are already displaying the name & email in the header, we can just show the role there and we have it already. This will keep the ui way more simple imo.

DonKoko avatar Jul 18 '24 14:07 DonKoko

@DonKoko @carlosvirreira I have added the scenarios in the OP. These should cover the simplified approach of:

  • Using the Settings > Team index for now
  • Only using the Assets and Bookings tabs (skipping the Overview tab)

jurrejansen avatar Jul 30 '24 08:07 jurrejansen

@carlosvirreira this is 95% done. There is a bug in it but its not related to this, its something that happens on asset index as well. Tags and Location filter basically work with OR rather than AND in combination with custodian. So you can ignore that and just test the rest. Deploy: https://github.com/Shelf-nu/shelf.nu/actions/runs/10366381727

DonKoko avatar Aug 13 '24 08:08 DonKoko

@carlosvirreira this is ready for testing. Here is the deploy action to staging server: https://github.com/Shelf-nu/shelf.nu/actions/runs/10383350891

DonKoko avatar Aug 14 '24 07:08 DonKoko

Hi @DonKoko and team.

It works well. Tested on mobile/desktop.

We have some improvements on how to integrate this functionality on the rest of the application. Best kept for a separate issue.

For instance:

  • On 'Dashboard' clicking on a top custodian face/name - should lead to that user's page. (We count the assets - we might as well reveal them)
  • on 'Asset page' clicking on a user name (in custody of Name) should also lead to the profile page
  • on 'Kit page' clicking on the user name (in custody of Name) could also lead to the profile page

carlosvirreira avatar Aug 14 '24 13:08 carlosvirreira

@carlosvirreira releasing this: https://github.com/Shelf-nu/shelf.nu/actions/runs/10403048069

DonKoko avatar Aug 15 '24 11:08 DonKoko