mitre / vulcan

A web application to streamline the development of STIGs from SRGs
https://mitre-vulcan-prod.herokuapp.com/
Other
65 stars 16 forks source link

348 add deep linking to controls #544

Closed vanessuniq closed 1 year ago

vanessuniq commented 1 year ago

image

freddyfeelgood commented 1 year ago

Initial testing looks good. One minor "bug" is in the URL, if you change the component ID, but leave the rest, it will navigate you to the control in the new component with the same last 6 digits (looks like the "prefix" isn't being checked). So for example, if I am at location: http://127.0.0.1:3000/components/97/controls/HZNV-8X-000021 And I change to component 103: http://127.0.0.1:3000/components/103/controls/HZNV-8X-000021 It loads the page, but the control is actually PHTN-30-000021 (in this example). Clicking another control in the project and coming back to PHTN-30-000021 then refreshes the URL correctly.

freddyfeelgood commented 1 year ago

More issues found... for example, unlocking a control doesn't refresh the screen. Then when changing the status, the other mandatory fields don't change like they're supposed to. Also, if typing into a field, then nagivating to another control, the text in the field doesn't change as expected.

smarlaku820 commented 1 year ago

Hi @vanessuniq ,

I love the way I can get to any control by performing a GET. observed a lot going in the backend. lot of queries.

If I click, 4 or 5 controls on the page, its even getting delayed in loading the page & hitting the performance. Can we do something to cache the responses ? And did you observe this pattern at your end ?

vanessuniq commented 1 year ago

Initial testing looks good. One minor "bug" is in the URL, if you change the component ID, but leave the rest, it will navigate you to the control in the new component with the same last 6 digits (looks like the "prefix" isn't being checked). So for example, if I am at location: http://127.0.0.1:3000/components/97/controls/HZNV-8X-000021 And I change to component 103: http://127.0.0.1:3000/components/103/controls/HZNV-8X-000021 It loads the page, but the control is actually PHTN-30-000021 (in this example). Clicking another control in the project and coming back to PHTN-30-000021 then refreshes the URL correctly.

nice catch

vanessuniq commented 1 year ago

Hi @vanessuniq ,

I love the way I can get to any control by performing a GET. observed a lot going in the backend. lot of queries.

If I click, 4 or 5 controls on the page, its even getting delayed in loading the page & hitting the performance. Can we do something to cache the responses ? And did you observe this pattern at your end ?

Yes, I noticed that. I did not want to change the workflow that was already in place, just build on top of it. This is due to several event listener within all involved Rules vue components that triggers axios. This workflow definitely needs to be optimized.

vanessuniq commented 1 year ago

Moving this to draft, continue working on the issues

vanessuniq commented 1 year ago

resolved with pr #546