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

Investigate combining detail view components #639

Closed
Tracked by #679
pjmonks opened this issue Aug 18, 2022 · 1 comment · Fixed by #706
Closed
Tracked by #679

Investigate combining detail view components #639

pjmonks opened this issue Aug 18, 2022 · 1 comment · Fixed by #706
Assignees
Labels
enhancement New feature or request for discussion More discussion required to decide how to resolve an issue

Comments

@pjmonks
Copy link
Contributor

pjmonks commented Aug 18, 2022

Description

Currently each catalogue item type - such as Data Models, Terminologies, Folders, etc - are composed of two unique components:

  • [DomainType]Component - the parent container to display all details and tabs
  • [DomainType]DetailComponent - to display the core details of the catalogue item e.g. label, versions, menu actions etc

These 2 sets of components are duplicated for every domain type in Mauro, which means:

  1. There can be a lot of duplicated code with only slight differences e.g. setting labels, finalising models etc
  2. Adding new domain types takes a lot of copy/paste effort and testing
  3. There are inconsistencies between all domain types. If one common action is added for all domain types, it produces a lot of UI effort to add to everything.

It should be investigated whether it is possible to create one detail view component that renders any catalogue item instead. There will need to be:

  1. Some conditional logic to decide if certain UI controls/tabs are visible e.g. "Terms list" only appears for Terminologies
  2. Most of the common logic would need to be pushed up into a service to decide the best endpoint to use e.g. setting a item label would use different endpoints depending on the domain type used.

Initial Scope

For the initial investigation, it should be seen if one domain can be refactored into a more generic form such as:

  1. The Data Model, since that should most operations you would expect. Or
  2. Folders, since containers are quite simple catalogue items

Findings should then be discussed with the rest of team to determine next steps.

Out of Scope

  • Any redesigns or changes to UX. The existing functionality should remain in place, as well as how the pages look e.g. maintain the tab views
  • Child components should be maintained and kept as they are for now. For instance, re-use the same Term/Data Element/Data Class list tables used already, depending on the domain type to represent
@pjmonks pjmonks added enhancement New feature or request for discussion More discussion required to decide how to resolve an issue labels Aug 18, 2022
@jamesrwelch jamesrwelch mentioned this issue Nov 28, 2022
17 tasks
@jamesrwelch
Copy link
Contributor

See #feature/style-tweaks branch for a first iteration of this

@pjmonks pjmonks self-assigned this Nov 29, 2022
pjmonks added a commit that referenced this issue Dec 6, 2022
- Replace all `*-detail` components which replicate each other with `mdm-model-header`
- All actions allowed for every domain type can now be done in here
- Changing label now launches a dialog instead of inline view
- Toolbar options changed around a bit to make common ones more prominent
jamesrwelch pushed a commit that referenced this issue Dec 7, 2022
- Replace all `*-detail` components which replicate each other with `mdm-model-header`
- All actions allowed for every domain type can now be done in here
- Changing label now launches a dialog instead of inline view
- Toolbar options changed around a bit to make common ones more prominent
jamesrwelch added a commit that referenced this issue Dec 7, 2022
gh-639 Create consistent domain view header component
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request for discussion More discussion required to decide how to resolve an issue
Projects
Status: Merged to Develop / Waiting to release
Development

Successfully merging a pull request may close this issue.

2 participants