-
Notifications
You must be signed in to change notification settings - Fork 20
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
feat(topology): topology view #891
Conversation
Just in draft right now as filtering and tree-walk function needs closer look. This works only in local dev (exploring how it is in OCP now - nested groups are gonna be pretty clustered so need further restyling). Let me know how it looks or any functionalities that you want to add in :D |
Wow, this looks amazing. My mind is pretty blown :-) When I click on the link from the Topology view to add credentials for a target: it would be cool if not only were I directed to the Security view but also if the credentials adding dialog could be drawn up immediately, too. Or maybe the modal can just be drawn up on top of the Topology view without directing to Security at all. Also, maybe this is just the design guidelines for the PF Topology view, but I find that the connection test on the new custom target creation form is not very obvious. It took me a minute to realize that logo element was clickable. Maybe something like https://rxjs.dev/api/operators/throttleTime / https://rxjs.dev/api/operators/debounceTime on the text input fed into the testing function automatically would be helpful? And if the test fails, the creation button should probably be disabled (until the connection URL input is changed) since we can now predict that the action is going to fail anyway. |
Ahhh actually I designed this layout to to replace the |
Sounds good, though I don't think a blog post is necessary just for this aspect. A post covering the topology view as a whole would be great. Ideally the test button should look button-y and be discoverable/obvious to the user just looking at the view, without having to go look at some other documentation to figure out how to operate it. |
Okayyy maybe a hint text right under the button would also help + mentioning in the top banner then :D |
On this one, could u check the latest commit to see if that is what we want?
Maybe I don't have a clear idea but would there be problems:
Maybe adding helper text to make the button (sample target node) functionality stands out makes the most sense? |
The idea is just to prevent too many tests from being performed on the input while it's changing, so once the input has settled for some time there would be a "final" observable emission that would go through the pipeline and end up as a connection test call.
Possible yes, but as you say I think there's a way to solve this with the right kind of observable chaining, and by applying an appropriately slow/long debounce on the input changes.
Well... I hope not. This isn't a very expensive request and if it's debounced so that each individual web-client instance is only performing one request every second or so, DoSing should be unlikely. |
This is probably even better than what I was saying, I say stick with what you added here. The helper text for the test button is also probably enough, so no need to worry too much about the automatic testing thing. |
@andrewazores Just wanna double check on this one. I added the resource tab for each target. Currently, it only shows the total of certain resource. Anything you think we should add in here? Each link should lead the users the corresponding view. |
Maybe the number of matching rules and credentials? The links from that table to the views appear to work nicely, but navigating directly to those views from the main left side nav menu seems to be broken now. |
Opps i forgot to check |
Rebasing causes this CACHE_CHECKSUM_MISMATCH:
Not sure what happens to this package checksum (maybe backports? updates?). So I have to clean cache and use |
Test image available:
|
Gotcha, makes sense to me then. Thanks for the explanation! |
Unfortunately, the TreeView component seems to wrap that view in a button which causes it not to be selectable...
This comes up whenrendering the action dropdown in the detail view. |
Test image available:
|
Test image available:
|
A little weird that the compareTo function is given different arguments if select Option is not in a group. Fixed now thanks! |
Test image available:
|
Test image available:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No other comments, looks great to me! Awesome job on this.
Welcome to Cryostat! 👋
Before contributing, make sure you have:
main
branch[chore, ci, docs, feat, fix, test]
git commit --amend --signoff
Fixes: #678, #752 (topology)
Fixes: #666, #429, #867 (targetSelect)
Fixes: #594 (test connection)
Depends on https://github.com/cryostatio/cryostat/pull/1389
Description of the change:
This PR includes the new Topology to view discovered targets along with their group/realm. Remaining tasks:
add-credential
action is now displayed.Note: intentionally left out localizations and tests to keep the PR less clustered. Will include those changes as a follow-up PR.
Motivation for the change:
See #678
How to manually test:
/settings
to see the latest local target selector. Similarly, go/create-rule
and/security
(credential modal).@test/resources
.