-
David Johnson authored
(The bulk of the code is in the parameter form formatter/decorator JS code; I only applied it to the wizard for now... but it's straightforward to copy it into the old parameter code ;)) The portal can now render the parameter form in much more complex ways. It supports a notion of advanced parameter groups, a panel containing parameters that is closed by default but expandable; generic parameter groups; per-parameter detailed helpdocs in an expandable subpanel (and an expand-all-help link that will also expand all the parameter group panels), and error messages and warnings. A summary of both errors and warnings is displayed at the top of the form, and specific error message details are displayed near parameters. The error message display is flexible to generic user messages -- basically if the error is a proper geni-lib portal error/warning, but not a parameter error/warning, it will be displayed at the top of the parameter form (along with any others). If it's an "improper" one, we'll still do our best to display it. If you warn a user, you can provide a set of parameter values that "fix" the warning, and the Portal UI will change the form values and tell the user it did so. You can't do this on error; the assumption is the user has to fix the error. Finally, the portal now tries to rungenilib in warnings-are-fatal mode the first time parameter bind (to generate rspec) is attempted. If they go backwards to re-parameterize, warnings should be fatal again. It's too hard to figure out when we should stop warnings-fatal mode; we can't block the user's progress if they really want to proceed in the face of warnings.
c201620c