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

Nested Groups in sideNav #180

Merged
merged 10 commits into from
Oct 13, 2023
Merged

Nested Groups in sideNav #180

merged 10 commits into from
Oct 13, 2023

Conversation

qtzar
Copy link
Contributor

@qtzar qtzar commented Mar 17, 2023

This PR adds a new way to generate the side nav that accounts for nested groups in the structurizer DSL as the softwareSystem level.

I have tested this with a workspace.dsl that contains nested groups as well as the example workspace.dsl that does not contain any groups.

@qtzar

This comment was marked as outdated.

@dirkgroot
Copy link
Collaborator

@qtzar Thanks for your PR. I'm not sure if I like this change, for a couple of reasons:

  • User experience:
    • It add visual clutter to the menu, because of the dashed lines and + and - symbols.
    • The style of the menu is not consistent with the style of the rest of the menu. It's more crammed, and indentation is different.
    • All groups are collapsed by default, which (especially for smaller models) isn't really necessary, I think.
    • Navigation through the available systems via the menu now requires more mouse clicks.
  • I'm not sure if this is the best way to visualize groups in the site. I think it's a nice addition, but I think I'd prefer a somewhat more minimalistic approach, but I'm not sure what that should look like. Any ideas (CC @jp7677)?

@dirkgroot dirkgroot requested a review from jp7677 March 24, 2023 14:11
@qtzar

This comment was marked as outdated.

@qtzar

This comment was marked as outdated.

@jp7677
Copy link
Contributor

jp7677 commented Mar 27, 2023

I'm torn about introducing a tree view for the software systems. Like dirkgroot I'm also found of the simple flat list of all software systems. Considering that groups allow a lot of flexibility (multiple groups, nesting) and can be used for a lot of different meanings, I'm in doubt that we can find a presentation that fits everyone.

My advise for how to present (certain) groups more prominently would be to use global documentation (which appear in the menu, like System Landscape in the example) and then use embedded views with exactly the groups and systems plus context you need for a certain use case.

@qtzar

This comment was marked as outdated.

@qtzar qtzar marked this pull request as draft May 3, 2023 21:06
@pietermees
Copy link
Contributor

@qtzar we'd love to use this functionality, I was wondering if this was still something you were pursuing or whether it's stale?

@qtzar
Copy link
Contributor Author

qtzar commented Sep 11, 2023

I would LOVE to have this functionality merged in also. I probably have to rebuild it a little as the main branch has moved on quite a bit and I'd make sure that it can be enabled/disabled as wanted.

@dirkgroot @jp7677 What do you think? Could this feature be considered again?

@qtzar qtzar marked this pull request as ready for review September 11, 2023 17:33
@qtzar
Copy link
Contributor Author

qtzar commented Sep 11, 2023

I rebuilt the functionality on top of the most current main branch and then forced a commit to my branch to eliminate all previous commits.

@qtzar
Copy link
Contributor Author

qtzar commented Sep 21, 2023

Here is an updated screenshot ( ignore the blacked out bit to hide company name ). As mentioned in one of the outdated comments we have 400+ systems and the simple flat list is just unusable. We do have sets of landscape views based on certain major groups and show sub groups within those landscape docs but it doesn't negate that fact that 400+ systems means a really long scroll on the page.

Screenshot 2023-09-21 at 1 04 51 PM

Copy link
Contributor

@jp7677 jp7677 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for the late review, it has been rather busy :(.

This PR is shaping up nicely and since it is an opt-in, I'm fine to get this in. Could you please look at my comments/suggestions. I haven't tested them, so likely bugs are included ;)

Could you please also add a few tests that validate the construction of the MenuNodes?

qtzar and others added 4 commits October 11, 2023 10:33
# Conflicts:
#	README.md
#	src/main/kotlin/nl/avisi/structurizr/site/generatr/site/model/PageViewModel.kt
#	src/main/kotlin/nl/avisi/structurizr/site/generatr/site/views/Page.kt
Copy link
Contributor

@jp7677 jp7677 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some whitespace nits left...

@qtzar
Copy link
Contributor Author

qtzar commented Oct 13, 2023

@jp7677 Thanks for taking the time to help with this PR.

Copy link
Contributor

@jp7677 jp7677 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 empty lines left...

@jp7677
Copy link
Contributor

jp7677 commented Oct 13, 2023

@qtzar All good, but unfortunately conflicts, can you please bring this branch in line with main?

@qtzar
Copy link
Contributor Author

qtzar commented Oct 13, 2023

@jp7677 I'm not showing my branch being behind main.

@jp7677
Copy link
Contributor

jp7677 commented Oct 13, 2023

@jp7677 I'm not showing my branch being behind main.

Sry, my bad, my merge button was on "rebase", that isn't possible due to conflicts (due to the merge commits in this branch) . that said other merge modes are indeed fine.

@jp7677 jp7677 merged commit fe854fa into avisi-cloud:main Oct 13, 2023
2 checks passed
@qtzar qtzar deleted the nestedgroups branch October 13, 2023 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants