@@ -19,19 +19,9 @@ class DawaElementAddressMatrikula extends WebformCompositeBase {
1919 public static function getCompositeElements (array $ element ) {
2020 $ elements = [];
2121 if ($ element ) {
22- $ matrikula_wrapper_id = $ element ['#webform_id ' ] . '-matrikula-wrapper ' ;
23-
2422 $ elements ['address ' ] = [
2523 '#type ' => 'os2forms_dawa_address ' ,
2624 '#title ' => isset ($ element ['#address_field_title ' ]) ? $ element ['#address_field_title ' ] : t ('Address ' ),
27- '#ajax ' => [
28- 'callback ' => [DawaElementAddressMatrikula::class, 'matrikulaUpdateSelectOptions ' ],
29- 'event ' => 'change ' ,
30- 'wrapper ' => $ matrikula_wrapper_id ,
31- 'progress ' => [
32- 'type ' => 'none ' ,
33- ],
34- ],
3525 '#remove_place_name ' => isset ($ element ['#remove_place_name ' ]) ? $ element ['#remove_place_name ' ] : FALSE ,
3626 '#remove_code ' => isset ($ element ['#remove_code ' ]) ? $ element ['#remove_code ' ] : FALSE ,
3727 '#limit_by_municipality ' => isset ($ element ['#limit_by_municipality ' ]) ? $ element ['#limit_by_municipality ' ] : FALSE ,
@@ -40,29 +30,49 @@ public static function getCompositeElements(array $element) {
4030 $ elements ['matrikula ' ] = [
4131 '#type ' => 'select ' ,
4232 '#title ' => isset ($ element ['#matrikula_field_title ' ]) ? $ element ['#matrikula_field_title ' ] : t ('Matrikula ' ),
43- '#prefix ' => '<div id=" ' . $ matrikula_wrapper_id . '"> ' ,
44- '#suffix ' => '</div> ' ,
4533 '#options ' => [],
4634 '#empty_value ' => NULL ,
4735 '#validated ' => TRUE ,
4836 '#attributes ' => [
4937 'disabled ' => 'disabled ' ,
5038 ],
39+ '#description ' => t ('Options autofill is disabled during the element preview ' ),
5140 ];
5241
53- if (isset ($ element ['#value ' ]) && !empty ($ element ['#value ' ]['address ' ])) {
54- $ addressValue = $ element ['#value ' ]['address ' ];
42+ // If that is just element preview (no webform_id), then keep the
43+ // element simple. Don't add AJAX behaviour.
44+ if (isset ($ element ['#webform_id ' ])) {
45+ $ matrikula_wrapper_id = $ element ['#webform_id ' ] . '-matrikula-wrapper ' ;
46+
47+ $ elements ['address ' ]['#ajax ' ] = [
48+ 'callback ' => [DawaElementAddressMatrikula::class, 'matrikulaUpdateSelectOptions ' ],
49+ 'event ' => 'change ' ,
50+ 'wrapper ' => $ matrikula_wrapper_id ,
51+ 'progress ' => [
52+ 'type ' => 'none ' ,
53+ ],
54+ ];
55+
56+ $ elements ['matrikula ' ] += [
57+ '#prefix ' => '<div id=" ' . $ matrikula_wrapper_id . '"> ' ,
58+ '#suffix ' => '</div> ' ,
59+ ];
60+ unset($ elements ['matrikula ' ]['#description ' ]);
61+
62+ if (isset ($ element ['#value ' ]) && !empty ($ element ['#value ' ]['address ' ])) {
63+ $ addressValue = $ element ['#value ' ]['address ' ];
5564
56- $ matrikulaOptions = self ::getMatrikulaOptions ($ addressValue , $ element );
65+ $ matrikulaOptions = self ::getMatrikulaOptions ($ addressValue , $ element );
5766
58- // Populating the element.
59- if (!empty ($ matrikulaOptions )) {
60- $ elements ['matrikula ' ]['#options ' ] = $ matrikulaOptions ;
61- $ matrikulaOptionKeys = array_keys ($ matrikulaOptions );
62- $ elements ['matrikula ' ]['matrikula ' ]['#value ' ] = reset ($ matrikulaOptionKeys );
67+ // Populating the element.
68+ if (!empty ($ matrikulaOptions )) {
69+ $ elements ['matrikula ' ]['#options ' ] = $ matrikulaOptions ;
70+ $ matrikulaOptionKeys = array_keys ($ matrikulaOptions );
71+ $ elements ['matrikula ' ]['matrikula ' ]['#value ' ] = reset ($ matrikulaOptionKeys );
6372
64- // Make element enabled.
65- unset($ elements ['matrikula ' ]['#attributes ' ]['disabled ' ]);
73+ // Make element enabled.
74+ unset($ elements ['matrikula ' ]['#attributes ' ]['disabled ' ]);
75+ }
6676 }
6777 }
6878 }
0 commit comments