Dynamics fields visibility concurrency problem


#1

Hello everyone. I am struggling with dynamics dialog fields in my catalog.

Let’s say I’d like to have a checkbox field ‘use_ipam’
This checkbox is true, by default. If user wishes to enter hostname, ip manualy and unchecks this checbox, several other text fields would appear (one for hostname, one for IP, one for network mask, etc…)
The problem is, that user can click quicky (by accident) more then once and result of what stays visible and what hidden is undetermined.
Checkbox ‘use_ipam’ itself is not dynamics, it only has selected hostname, ip fields in Fields to refresh. Those text fields are dynamics and if user clicks more then one on ‘use_ipam’, their “refresh” methods run in parallel. Sometimes wins correct instance, sometimes not.
Is there any solution for this? (except to maintain 2 dialogs?)
Thanks


#2

The outcome should not be undetermined, but it may take several seconds to properly update to the final state.
ManageIQ spawns a new process everytime a dynamic element is refreshed, which takes ~1s per refresh and should queue up (you should have a little spinner next to the element)

Unfortunately I am not aware of any Solution to the problem. We work around the problem with a dedicated validation step as the first thing in the StateMachine, that checks for sanity (and a whole bunch other stuff). If the validation fails we abort the workflow and send a email to the requester


#3

Adding an explicit refresh button to the relevant dialog fields could make it possible to get unstuck when that happens.

(No systematic solution comes to mind.)