@@ -96,13 +96,7 @@ protected function _getChildrenElementsHtml(AbstractElement $element)
96
96
. '<td colspan="4"> ' . $ field ->toHtml () . '</td></tr> ' ;
97
97
} else {
98
98
$ elements .= $ field ->toHtml ();
99
- $ styleTag = '' ;
100
- if (!empty ($ field ->getFieldConfig ()['depends ' ]['fields ' ])) {
101
- $ styleTag .= $ this ->secureRenderer ->renderStyleAsTag (
102
- 'display: none; ' ,
103
- '#row_ ' . $ field ->getHtmlId ()
104
- );
105
- }
99
+ $ styleTag = $ this ->addVisibilityTag ($ field );
106
100
$ elements .= $ styleTag ;
107
101
}
108
102
}
@@ -176,13 +170,7 @@ protected function _getFrontendClass($element)
176
170
*/
177
171
protected function _getHeaderTitleHtml ($ element )
178
172
{
179
- $ styleTag = '' ;
180
- if (!empty ($ element ->getGroup ()['depends ' ]['fields ' ])) {
181
- $ styleTag .= $ this ->secureRenderer ->renderStyleAsTag (
182
- 'display: none; ' ,
183
- '# ' . $ element ->getHtmlId () . '-head '
184
- );
185
- }
173
+ $ styleTag = $ this ->addVisibilityTag ($ element );
186
174
return '<a id=" ' .
187
175
$ element ->getHtmlId () .
188
176
'-head" href="# ' .
@@ -292,4 +280,33 @@ protected function _isCollapseState($element)
292
280
}
293
281
return $ this ->isCollapsedDefault ;
294
282
}
283
+
284
+ /**
285
+ * If element or it's parent depends on other element we hide it during page load.
286
+ *
287
+ * @param AbstractElement $field
288
+ * @return string
289
+ */
290
+ private function addVisibilityTag (AbstractElement $ field ): string
291
+ {
292
+ $ elementId = '' ;
293
+ $ styleTag = '' ;
294
+
295
+ if (!empty ($ field ->getFieldConfig ()['depends ' ]['fields ' ])
296
+ || !empty ($ field ->getContainer ()->getGroup ()['depends ' ]['fields ' ])
297
+ ) {
298
+ $ elementId = '#row_ ' . $ field ->getHtmlId ();
299
+ } elseif (!empty ($ field ->getGroup ()['depends ' ]['fields ' ])) {
300
+ $ elementId = '# ' . $ field ->getHtmlId () . '-head ' ;
301
+ }
302
+
303
+ if (!empty ($ elementId )) {
304
+ $ styleTag .= $ this ->secureRenderer ->renderStyleAsTag (
305
+ 'display: none; ' ,
306
+ $ elementId
307
+ );
308
+ }
309
+
310
+ return $ styleTag ;
311
+ }
295
312
}
0 commit comments