Bug 1057386

Summary: [RFE] for dialogs with side sections (e.g. New VM, New Cluster): need to "jump" to first section with validation error upon click on "OK"
Product: [Retired] oVirt Reporter: Antoni Segura Puimedon <asegurap>
Component: ovirt-engine-webadminAssignee: Alexander Wels <awels>
Status: CLOSED CURRENTRELEASE QA Contact: Karolína Hajná <khajna>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.4CC: awels, bazulay, bugs, ecohen, gklein, iheim, mgoldboi, pnovotny, pstehlik, rbalakri, vszocs, yeylon
Target Milestone: ---Keywords: Improvement
Target Release: 3.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: ux
Fixed In Version: ovirt-engine-3.6.0-0.0.master.20150412172306.git55ba764 Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-04 11:26:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: UX RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1252525    
Bug Blocks:    
Attachments:
Description Flags
screen-cast: red highlight of dialog section with validation errors none

Description Antoni Segura Puimedon 2014-01-24 00:25:13 UTC
Description of problem:
When creating a new cluster if the user forgets something that is required on the first page (The one with Name, CPU Name, etc.) like the CPU Name, then navigates to another page of the dialog like for example the Console settings, then clicks OK. Nothing visible will happen. The dialog will just do nothing. Only when checking the pages of the dialog one by one will the user see that there is a red framed field requiring action.


Version-Release number of selected component (if applicable):3.4 beta


How reproducible: 100%


Steps to Reproduce:
1. Open New Cluster Dialog
2. Fill in Name but leave "CPU Name" empty
3. Go to the Console part of the "New Cluster" dialog.
4. Press OK.

Actual results: Nothing visible happens.


Expected results:The user is taken to the dialog where the missing required field should be filled (and is correctly marked in red). If there is more than a required field missing in more than a section, I guess it could just go by section order.


Additional info:

Comment 1 Einav Cohen 2014-01-24 16:19:36 UTC
- there might be multiple sections within the dialog that contain validation errors - need to "jump" to the first section that contains a validation error (unless the currently-selected section already contains a validation error - in that case, need to stay in the currently-selected section). 

- this applies to all dialogs that have side-sections, not only New Cluster. 

-> changing BZ subject accordingly.

Comment 2 Itamar Heim 2014-01-26 07:46:06 UTC
or highlight in red the pane which has the error in it.

Comment 3 Vojtech Szocs 2014-01-27 14:45:46 UTC
(In reply to Itamar Heim from comment #2)
> or highlight in red the pane which has the error in it.

This seems to be the easiest thing to do, highlighting pane(s) which contain input validation errors.

Comment 4 Einav Cohen 2014-04-17 19:22:11 UTC
Created attachment 887256 [details]
screen-cast: red highlight of dialog section with validation errors

Comment 5 Einav Cohen 2014-04-17 19:26:00 UTC
(In reply to vszocs from comment #3)
> (In reply to Itamar Heim from comment #2)
> > or highlight in red the pane which has the error in it.
> 
> This seems to be the easiest thing to do, highlighting pane(s) which contain
> input validation errors.

- we already have that, at least for some of the dialogs. see attachment 887256 [details]. 
as far as I could see, we have that for New VM and New Host, and we don't have it for New Cluster and New Network, so it needs to be added there. 
[if we have additional dialogs with sections, they need to be checked and fixed as well, if needed]

- I still think that it is a better user experience if *in addition* to the section highlighting, the problematic section (or the first problematic section, if there are several problematic sections) will be selected after clicking on 'OK' in the dialog.

Comment 6 Alexander Wels 2014-04-21 15:44:45 UTC
There are a few more dialogs with multiple sections and as far I could tell they all high-lighted the missing section. I will see what I can do about automatically selecting the correct tab and field.

Comment 7 Vojtech Szocs 2014-04-22 14:25:47 UTC
Since there's a (UiCommon) model behind each dialog, validation is done by the model and dialog's UI code needs to hook to validation results via event listeners.

For example, in "New Host" dialog, when there's validation error on "General" side-tab, HostModel fires "IsGeneralTabValid" property change event. There is currently no automated way (other than custom property change events) to trigger dialog side-tab "invalid" feedback.

I think we should refactor models, removing all "IsGeneralTabValid" (or similar) and replacing them with single, consistent property change event like "TabValidationChange". This way, dialog UI *infra* code can listen to "TabValidationChange", do some tabName(string) -> tabObject(widget) resolution (based on API provided by infra) and update side-tab "invalid" feedback in a generic way.

As for automatically switching into first side-tab that has validation errors, if we do refactor mentioned above, it won't be too hard to do in a generic way. Otherwise, we will need more custom property change events in models, which is not a good approach IMHO.

Comment 8 Einav Cohen 2014-09-08 19:09:33 UTC
Alexander - MODIFIED?

Comment 10 Karolína Hajná 2015-09-11 06:15:30 UTC
Verified on 3.6.0-0.0.master.20150804111407.git122a3a0.el6

Comment 11 Sandro Bonazzola 2015-11-04 11:26:35 UTC
oVirt 3.6.0 has been released on November 4th, 2015 and should fix this issue.
If problems still persist, please open a new BZ and reference this one.