-
Notifications
You must be signed in to change notification settings - Fork 355
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
Use Critical error dialog with context #4942
Use Critical error dialog with context #4942
Conversation
755d4e0
to
528b0e7
Compare
So, a few points:
Something like this: Clicking on the preview action would toggle the modal dialog into a preview mode, where the information is read-only, in a scrollable viewport. There would be a way to toggle back to edit to be able to correct typos. (I'm not certain of the toggle as an action button in the modal. I'm still exploring ideas. But I wanted to share what I have so far and the reasoning behind it.) When sending the report, the button should have a spinner. All input fields and buttons should be in a disabled state while sending. It would use the progress variant of the button: https://www.patternfly.org/v4/components/button#progress-indicators When done, there should be a confirmation prompt with a link to the bug. Looking forward to your feedback! |
Also: That dark grey background ("backdrop") should be transparent; you should be able to see the screen behind the modal, similar to the design doc @ https://www.patternfly.org/v4/components/modal/design-guidelines#center-aligned-modal-default |
If we cannot collect information from within Anaconda, then we could have an extremely reduced functionality one that still provides a preview with notice about sending information over the network (good for privacy info, especially in the EU), where it's basically this: The button would be a link that opens a new window for more information on Bugzilla (or whatever other issue tracker). Additionally, when that window is opened, we should still display "thanks" modal. However, since it already opened the issue report on Bugzilla, we'd remove the link from it on this version. (I made the quit in this specific modal primary as it's the only option. It should still be secondary in the other modal.) |
@garrett Thanks for the mockups! :) I think both look good, but given the available time and tooling, I think we can only implement number 2 for F39. Number 1 would require automated error reporting tooling that is jut not there right not function wise right now. :P |
For the previews, we might want to consider making the modal larger (especially vertically), as there might be a lot of information, such as logs. Browsing through that in a tiny scrollable area isn't very ideal. 😉 So the mockups might not be so accurate in terms of size. |
@garrett thank you for the mockups! |
ebbe5aa
to
f301be4
Compare
f301be4
to
494047a
Compare
@garrett @M4rtinK: new update, again with layout to be refined and improved. Should demonstrate what we want (are able) to communicate in the dialog and check the UX approach:
|
This is not a matter of Backdrop but of how we display the dialog - either dialog or the background: anaconda/ui/webui/src/components/app.jsx Line 118 in e43ad74
|
/boot-iso --webui |
148e33b
to
2006988
Compare
} | ||
}); | ||
taskProxy.addEventListener("Failed", () => { | ||
setStatus("danger"); | ||
}); | ||
taskProxy.addEventListener("Stopped", () => { | ||
taskProxy.Finish().catch(onAddErrorNotification); | ||
taskProxy.Finish().catch(onCritFail({ | ||
context: cockpit.format(_("Installing the system: $0"), refStatusMessage.current), |
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.
Why don't you use the 'message' directly here? I guess I am missing something?
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.
Message is not available here. I didn't want to use statusMessage because I would have to add it to the hook dependencies and the hook (getting tasks, registering handlers, starting the queue) would be called on every message change? So I thought useRef is suitable here.
2006988
to
1a319b8
Compare
The contents of the modal should be more like this: But it should be a larger modal to provide enough space in the text entry, so it'd look more like this within Anaconda: The changes are basically to minimize the content outside of the scrollable area and making the scrollable area larger. Please also note the names of labels (including button labels) and use of iconography (the reprot issue does not have an icon, until submission happens, then it has a spinner and is disabled (as is quit and reboot) while submitting). |
@garrett I like the labels, error description and details updates - now definitely more human readable. I am going to update the PR, and also build iso so you can play with it live, especially with the flow with following BZ link opened. Regarding the button icons and log review I have some questions and notes.
I was using the button for sending report proposed in the alternative solution by you (opening the BZ report) above. We do just open the BZ report prefiled url in the browser with So here I would rather go just with the simple stateless button. This way the user can even try again if he for some reason already closed the window with the BZ report form.
|
👍
Awesome! Thank you!
Haha, whoops. I see that above. I didn't see it in the Penpot file when I redid it and was context shifting from dev work on Cockpit (PatternFly stuff, mainly around browser compatibility and CSS), as it was on a separate page and I was basing the newer dialogs from the page with the interactive ones. Oops!
That would only work if it has immediate actions... which I guess it does? (That is, using
Normally dialogs close, but I guess it makes sense to do this here. They'll need an option to reboot, which is in the modal, and if they accidentally close the window, like you're saying, then they need a way to get back. Since we don't have the (X) modal and there's nothing else to do other than report or quit/reboot, then it does make sense to treat this modal differently. (In other words: I agree; this makes sense.) I wonder if we really should use the word "Bugzilla" though. I was probably wrong suggesting that a while back. The icon probably still makes sense though, as it would open a new window. Here's a revised mockup that changes the title, drops "Bugzilla", and has the external icon (nothing else changed): |
b56d44a
to
fc5d722
Compare
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.
Still looks good to me. :)
Split two commits #5027 as these can already be merged. To get this a bit leaner. |
For BZ report keep the message unstranslated for better issue debugging.
fc5d722
to
f7bc5e1
Compare
f7bc5e1
to
25566d9
Compare
/kickstart-test --waive webui-only |
…g is read The reviewed log is dumped to the checked file on the button click.
/kickstart-test --waive webui-only |
<Button | ||
variant="primary" | ||
isLoading={preparingReport} | ||
isDisabled={preparingReport} |
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.
You should disable this button instead of adding sleep in the test. So isDisabled={!content || preparingReport}
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.
I'll open a followup PR.
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.
The draft is adding some context for the user to Critical Error dialog addressing https://issues.redhat.com/browse/INSTALLER-3562. I am opening it to check if the direction and approach makes sense at all (I feel there already must be a common way how to do such things.). It is a very early draft, don't miss the notes below.
The goal here is to inform user more than the exception text says. In this PR I add:
Notes:
Or "While reading information about disks this error appeared: "Error: TEST DBUS EXCEPTION". This should not happen ..."onCritFail
and existingonAddErrorNotification
(Just exception message in notification). I think in most cases we want to replace the notification with Critical Error dialog (needs to be audited place by place).Here I am replacing it just in progress component as an example.There is a rough stab on passing the handler to Actions.