Fix for hide/collapse of fieldsets in admin when fieldsets are added dynamically
|Reported by:||punteney||Owned by:||nobody|
|Cc:||punteney@…, email@…||Triage Stage:||Design decision needed|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Currently in CollapsedFieldsets.js when it's initialized it gets gets an array of the fieldsets on the pages and then for the ones that are expand/contract it passes the the index number of that array to the onclick function to determine what fieldset should be displayed or hidden. Then in the show and hide function it queries the document again for all the fieldsets and selects the appropriate one based on the fieldset_index that was passed on to it. This breaks if a fieldset is dynamically added or removed from the page after the initialization as the array of fieldsets is now a different length (in my case it's an option to toggle the YUI rich text editor on or off that causes the problem to occur).
The attached patch changes it so an id is created for the fieldset if it doesn't have one and then the id is passed along with the fieldset_index to the show and hide functions. The correct fieldset is then found through the document.getElementById so as to be always be the correct one even if fieldsets are added or removed.
Change History (9)
comment:1 Changed 7 years ago by punteney
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
comment:3 Changed 7 years ago by ericholscher
- milestone set to 1.0 maybe
- Triage Stage changed from Unreviewed to Design decision needed