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

Oganizational Chart #112

Closed
Julien-Dubois-eXo opened this issue Jan 4, 2024 · 34 comments · Fixed by Meeds-io/social#3762 or Meeds-io/gatein-portal#883
Closed

Oganizational Chart #112

Julien-Dubois-eXo opened this issue Jan 4, 2024 · 34 comments · Fixed by Meeds-io/social#3762 or Meeds-io/gatein-portal#883

Comments

@Julien-Dubois-eXo
Copy link

Julien-Dubois-eXo commented Jan 4, 2024

Rationale

Many organizations ask to be able to have an organization diagram in the platform. In order to implement the relation between user we should be able to identified the manager of the users.

1. Functional Requirements

Top User Stories

Field manager

Profile
  • P1 - New system attribute "Manager"
    • multi-valued attribute
    • new attribute type: user
  • P1 - Display:
    • Avatar
    • Full name (first name + last name)
  • P1 - Hover:
    • Pop-up card of the user
  • P1 - Click: open the new organization chart feature
  • Edition:
    • P1 - AD or LDAP knowing that the information provided by LDAP is the LDAP reference type CN
    • P1 - CSV import thanks to user name attribute
    • P1 - for the user: thanks to a user selector from the contact information edition
  • P1 - In case of the user identified in the attribute is inactive:
    • for member/platform/user: the field is hidden
    • for member/platform/administrator and member/platform/user in its profile: the field is displayed as if the field is hidden
  • P1 - In case the attribute is inactive:
    • the field is not displayed at all
    • if the field is inactive could we still provide value thanks to CSV or AS/LDAP for it?
    • QUID about the organizational chart?
Administration
  • P1 - default values:
    • name: Manager
    • Visible: True
    • Editable: False
    • Non-maskable: False
    • Required: False
    • Multi-valued: True
    • Group synchronize: False
    • Active: True
    • No parent
  • the attribute can be edited by the administrator
    • P1 - rename, visible, non-maskable, required, group synchronized, active
    • P1 - multi-valued can't be changed
    • P1- editable can be changed

image

Image

Organization chart

  • New portlet Organization chart

  • Portlet properties:

    • in the section Tools
    • permission to add it: member/platform/administration
    • Settings:
    • Portlet settings:
      • Display name: Organization chart
      • Hide info bar
      • Hide portlet mode
      • Hide Window state
    • Access permission: member/platform/user
    • No other settings tabs
  • Display hierarchical relationships

    • in the middle the current user we are looking

    • above the manager (N+1)

    • below the people who have the current user as manager (N-1)

    • the users are displayed with cards

    • Current user card:

      • Full name
      • Avatar
      • 3 fields (1 principal and 2 secondaries) that can be defined by the administrator by interface in a drawer
        • if no data or the attribute is hidden by the user then the field is not displayed
      • See more that linked to the profile page
      • No click action on the card
      • this card layout should replace the current card in the user list of the people page
      • CTA buttons using only icons
        • Mail: to send a mail with the default mailing software of the device
          • if no data in the attribute email or hidden by the user the CTA is displayed as disabled and not clickable
        • Kudos
    • N+1 card:

      • Full name
      • Avatar
      • 1 field (same as the principal of the current user card)
      • Click on the card make the user as current user
    • N-1 card:

      • Full name
      • Avatar
      • 1 field (same as the principal of the current user card)
      • chip to indicate the number of N-1 user linked to this users - no action on this chip
      • Click on the card make the user as current user
    • Fields setting

      • a new drawer to select
        • the 3 fields of the cards
        • the attribute "manager" of the profile from which the organizational chart is based
        • the user in the center of the organizational chart
      • attribute "manager" choice
        • dropdown selector to choose from the profile attribute which attribute "user" is used to generate the organization chart. We select the manager attribute we want
        • by default, it's the default manager field that is selected
      • User at the center of the organizational chart
        - user selector to choose only one user that will be the user in the center of the organizational chart
        - by default, it's the user from which we have open the organizational chart
        - if it's a customer organizational chart created on a new page, we have to select the user.
        - It's a mandatory field
      • Field of the cards
        • 3 dropdowns to select profile attribute
        • the field settings are different from one portlet to another so we could manage separately the different organization charts
        • default values:
          • principal field: function
          • second field: Team
          • Third field: city

Image

Image

Image

Expand view

Image

Image

  • Download

    • download the current view of the organizational chart
    • if possible a PDF with all the text that can be search in the PDF
    • if not possible an image of the current view
  • New page with this portlet

    • a new page with the new portlet inside

Image

Image

Image

Image

2. Technical Requirements

Expected Volume & Performance

N/A

Security

This feature will use existing security mechanisms

Extensibility

No extensibility requirements

Configurability

Configurations will be added for :

  • The new field Manager in the list of Profile property settings
  • The new page containing the Organizational chart

Upgradability

  • This feature will add new data (manager field) and will use existing user data without changing it

Requirements related to existing features

  • A new profile property setting Manager will be added by configuration to the list of properties and will be available by default to be used by administrators
  • The new field Manager will be displayed in the user profile
  • A new portlet Org chart will be based on the values of the manager field and use it to build the organigram of the company
  • A drawer will be added to configure the fields displayed in the user cards

Feature Flags

No feature flag will be added, unless the org chat feature is not needed on Meeds side
should we disable by default the Org chart for Meeds ?

Other Non Functional Requirements

Make sure that the new developments respect the accessibility requirements

Impacts

Documentation
Training

Software Architecture

Security

  • We will follow the existing recommendation and best practices of the security
  • Rest endpoints should be configured correctly with the @RolesAllowed annotation
  • Only administrators will be able to alter the field manager, this restriction should be integrated in the front end application and in the Rest API

Access

  • All users will be able to view the added data
  • Administrators will be able to configure the portlet Org chart and set the fields to display inside the people card

Rest API design

  • Organizational chart :
  • The manager information will be added to the response returned by the existing Rest endpoint that returns the social user profile, it should be enabled/disabled in the response using the expand query parameter
  • The number of collaborators will be added to the response returned by the existing Rest endpoint that returns the social user profile
  • Drawer to Configure Organizational chart portlet
  • A new Rest endpoint to configure the list of fields to show on the user card inside the Organizational Chart portlet
  • Those settings will be saved as portlet preferences of the portlet.

Portlet Vue & Vuetify

  • The Organizational Chart is a new Vuejs portlet
  • The portlet will use existing VueJs components
  • Export to PDF : jspdf & html2canvas libraries will be used to generate the PDF file
  • This will require moving the libraries from Notes module to the Social module

Services & processing

  • Functions will be added to :
  • Retrieve the number of collaborators for a requested user

Data and persistence

No new data model to add

  • Organizational chart settings will be saved as portlet preferences
  • Manager field will be saved in the user profile properties, We will use the userName of the manager as the value of this field.

Migration strategy

  • Profile index should be updated to make all fields use the keyword type
  • Full reindexation of user profiles may be needed to update the mapping and refresh unindexed data

Annexes

Reasoning that explain the technical choices
Impacts
References

@Julien-Dubois-eXo Julien-Dubois-eXo self-assigned this Jan 4, 2024
@Julien-Dubois-eXo
Copy link
Author

@ahamdi @rdenarie can you complete the technical part please?

@Julien-Dubois-eXo
Copy link
Author

@srenault-meeds could you check the functional part please?

@srenault-meeds
Copy link
Collaborator

Hello, what is the rationale please?
I mean, which problem are you trying to solve?
Thanks

@Julien-Dubois-eXo
Copy link
Author

Edited

@srenault-meeds
Copy link
Collaborator

Thanks. It looks like this MIP is highly related to an organizational chart which Meeds doesn't provide.
If such feature is planned to be worked, then I suggest to work this manager field in the same MIP as it is related.
Thanks

@Julien-Dubois-eXo Julien-Dubois-eXo changed the title New field manager New field manager and organizational chart Jan 16, 2024
@rdenarie
Copy link
Member

The only subject of this MIP is to allow to have a field with a type "user" in the profile, in addition of the type text.
This is a prerequisite to organizational chart feature, which will not be in meeds, and not in a MIP.

The "user" type is in Meeds code, so this MIP.
The org chart will use this new type, and will not be in Meeds code.

If you prefer, we can make a simple issue to add the new type

@srenault-meeds
Copy link
Collaborator

I didn't know that this chart won't be in Meeds. let's discuss about it ;-)

@rdenarie
Copy link
Member

It was my understanding. Perhaps wrong. cc @margondicco

@Julien-Dubois-eXo
Copy link
Author

@srenault-meeds the manager field will start soon. Probably the beginning of next week. Could you check the functional part please?

@margondicco For the export do you have an idea of what information (especially the relation between people) you want? I have difficulty seeing how to organize it in a CSV. @srenault-meeds your opinion would be valuable too.

The technical part of the manager field will be provided in the day coming.

@rdenarie rdenarie removed the Draft label Jan 29, 2024
@plamarque plamarque changed the title New field manager and organizational chart Oganizational Chart Jan 30, 2024
@plamarque
Copy link
Member

Renamed this MIP to something simpler. The manager field being just a requirement for the org chart

@ahamdi
Copy link
Member

ahamdi commented Feb 6, 2024

@boubaker @rdenarie Ready for tech review

@rdenarie
Copy link
Member

rdenarie commented Feb 6, 2024

We wait go fonc before requesting the go tech

 @Julien-Dubois-eXo and @srenault-meeds can you synchronize to give the go func ?

Thanks

@Julien-Dubois-eXo
Copy link
Author

@srenault-meeds I have added some mock-ups for:

  1. adding a manager in the contact information drawer manually
  2. Organizational chart based on what we have discussed last time

Could you check to give go func for the end of this week? We will start at the beginning of next the manager.

@boubaker
Copy link
Member

@boubaker @rdenarie Ready for tech review

Yes. Thanks for the technical details. Let's wait for the Go func first to ensure that the functional requirement doesn't change (thus the technical requirements doesn't change neither) and then I 'll take care of it.

@Julien-Dubois-eXo
Copy link
Author

@srenault-meeds I have added the design for the organizational chart setting drawer.

@srenault-meeds
Copy link
Collaborator

Hello,

Feedbacks:

if the field is inactive could we still provide value thanks to CSV or AS/LDAP for it?
QUID about the organizational chart?

Question in a MIP. Did you get your answers? Are there still questions?

Mail: to send a mail with the default mailing software of the device

What is this?

chip to indicate the number of N-1 user linked to this users - no action on this chip

Tooltip?

if possible a PDF with all the text that can be search in the PDF
if not possible an image of the current view

Still an ongoing ideation?
Can you please confirm the expected outcome?

Mockup
Still items to review IMO to make it unique and not a copy from Office.
Let's discuss about it

@Julien-Dubois-eXo
Copy link
Author

if the field is inactive could we still provide value thanks to CSV or AS/LDAP for it? QUID about the organizational chart?
I had one but was not convinced by it. I'm interested in your point of view.

Mail: to send a mail with the default mailing software of the device
It's a feature asked by @margondicco. It opens the mail software of the device with the user email address.

chip to indicate the number of N-1 user linked to this users - no action on this chip
Yes why not. I just want to say there is no action on click. I have not think about the tooltip yet. I will do it during the US redaction.

if possible a PDF with all the text that can be search in the PDF if not possible an image of the current view
It's more depending on the technical feasibility. The ideal expected outcome is the PDF. @ahamdi is currently checking that point.

No problem discussing the mock-ups there are some points I have difficulty to do it with Miro.

@srenault-meeds
Copy link
Collaborator

Mail: to send a mail with the default mailing software of the device
It's a feature asked by @margondicco. It opens the mail software of the device with the user email address.

Is that really mandatory? Indeed, we might have cases where we have hide emails. Example: Builders -> Email are hidden
Option suggested: If you really want to display the email in the card, then use the option to list other items in the card (instead of the city, the department, etc.)

@srenault-meeds
Copy link
Collaborator

Excepted this point, GO Func for me.
Tell me if objection regarding email

@margondicco
Copy link

No objection with your proposal @srenault-meeds . Indeed some of our client don't want email.

@Julien-Dubois-eXo
Copy link
Author

@srenault-meeds I have changed the designed of the organisational chart settings based on your proposition.
@margondicco FYI

@srenault-meeds
Copy link
Collaborator

Go Func

exo-swf pushed a commit to Meeds-io/social that referenced this issue May 24, 2024
…-io/MIPs#112 - EXO-71284 (#3792)

External users could edit their personal profiles, but they should not
have access to the list of users on the platform.
If the profile contain a property of type user, they could get the list
of users, thus those type of fields will be disabled for them by the
current fix.
exo-swf pushed a commit to Meeds-io/social that referenced this issue May 24, 2024
…ds-io/MIPs#112 - EXO-69857 (#3817)

Receive and map correctly the multivalued profile property and avoid
losing its list of values. the property manager is multi-value when
users are stored in DB or in LDAP. But it is single value for Active
directory. This fix makes sure to parse it correctly to get the value
and convert it to the selected user.
exo-swf pushed a commit to Meeds-io/notes that referenced this issue May 24, 2024
…s-io/MIPs#112 (#956)

prior to this change, notes declare its dedicated jspdf and html2canvas
amd libraries,
This PR removes this declaration to rely on the declared libraries is
social module
ahamdi pushed a commit to Meeds-io/notes that referenced this issue May 24, 2024
…s-io/MIPs#112 (#956)

prior to this change, notes declare its dedicated jspdf and html2canvas
amd libraries,
This PR removes this declaration to rely on the declared libraries is
social module
ahamdi pushed a commit to Meeds-io/meeds that referenced this issue May 24, 2024
#1858)

Create organizational chart page and its system navigation
ahamdi pushed a commit to Meeds-io/meeds that referenced this issue May 24, 2024
create my team page contains the organizational chart portlet
ahamdi added a commit to Meeds-io/gatein-portal that referenced this issue May 24, 2024
exo-swf pushed a commit to Meeds-io/gatein-portal that referenced this issue May 24, 2024
…ds-io/MIPs#112 - EXO-69857 (#842)

While synchronizing users from LDAP/AD, multivalued attributes were not
synchronized, just a single value from the list is added to the user
profile.
The fix will check if the property is multivalued or not and will append
other values to make sure the whole list is saved in the profile.
@boubaker boubaker added this to the 7.0.0-M06 milestone May 26, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
…ravatar component - EXO-69207 - Meeds-io/MIPs#112 (#3537)

Add a disabled indication icon for disabled users in common useravatar
component

This fix will also :
 - variabilize the properties of Profile search index
 - add the connection field explicitely to the profile ES index
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
…ds-io/MIPs#112 (#3701)

issue with top border radius of new user card after adding additional
adaptation with space members which cause a hide of top border radius by
the banner image.
This PR makes sure to correctly display the top border radius by
correctly place the additional tags inside v-img
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
…ravatar component - EXO-69207 - Meeds-io/MIPs#112 (#3537)

Add a disabled indication icon for disabled users in common useravatar
component

This fix will also :
 - variabilize the properties of Profile search index
 - add the connection field explicitely to the profile ES index
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
rdenarie pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
…ds-io/MIPs#112 (#3701)

issue with top border radius of new user card after adding additional
adaptation with space members which cause a hide of top border radius by
the banner image.
This PR makes sure to correctly display the top border radius by
correctly place the additional tags inside v-img
ahamdi pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
ahamdi pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
ahamdi pushed a commit to Meeds-io/social that referenced this issue May 27, 2024
…ds-io/MIPs#112 (#3701)

issue with top border radius of new user card after adding additional
adaptation with space members which cause a hide of top border radius by
the banner image.
This PR makes sure to correctly display the top border radius by
correctly place the additional tags inside v-img
exo-swf pushed a commit to Meeds-io/meeds that referenced this issue May 27, 2024
#1858)

Create organizational chart page and its system navigation
exo-swf pushed a commit to Meeds-io/meeds that referenced this issue May 28, 2024
#1858)

Create organizational chart page and its system navigation
exo-swf pushed a commit to Meeds-io/gatein-portal that referenced this issue May 28, 2024
…ds-io/MIPs#112 - EXO-69857 (#842)

While synchronizing users from LDAP/AD, multivalued attributes were not
synchronized, just a single value from the list is added to the user
profile.
The fix will check if the property is multivalued or not and will append
other values to make sure the whole list is saved in the profile.
exo-swf pushed a commit to Meeds-io/meeds that referenced this issue May 29, 2024
#1858)

Create organizational chart page and its system navigation
exo-swf pushed a commit to Meeds-io/meeds that referenced this issue May 30, 2024
#1858)

Create organizational chart page and its system navigation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment