7777 // based on some field on the main form
7878 $field [' inline_create' ][' include_main_form_fields' ] = $field [' inline_create' ][' include_main_form_fields' ] ?? false ;
7979
80- if ($field [ ' inline_create ' ][ ' include_main_form_fields ' ] !== false || $field [' inline_create' ][' include_main_form_fields' ] !== true ) {
80+ if (! is_bool ( $field [' inline_create' ][' include_main_form_fields' ]) ) {
8181 if (is_array ($field [' inline_create' ][' include_main_form_fields' ])) {
8282 $field [' inline_create' ][' include_main_form_fields' ] = json_encode ($field [' inline_create' ][' include_main_form_fields' ]);
8383 }else {
84- $field [' inline_create' ][' include_main_form_fields' ] = json_encode ([$field [' inline_create' ][' include_main_form_fields' ]]);
84+ // it is a string or treat it like
85+ $arrayed_field = array ($field [' inline_create' ][' include_main_form_fields' ]);
86+ $field [' inline_create' ][' include_main_form_fields' ] = json_encode ($arrayed_field );
8587 }
8688 }
8789 }
118120 data-field-ajax =" {{ var_export ($field [' ajax' ])} }"
119121 data-inline-modal-class =" {{ $field [' inline_create' ][' modal_class' ] } }"
120122 data-app-current-lang =" {{ app ()-> getLocale () } }"
121- data-include-main-form-fields =" {{ $field [' inline_create' ][' include_main_form_fields' ]} }"
123+ data-include-main-form-fields =" {{ is_bool ( $field [' inline_create' ][' include_main_form_fields' ]) ? var_export ( $field [ ' inline_create ' ][ ' include_main_form_fields ' ]) : $field [ ' inline_create ' ][ ' include_main_form_fields ' ] } }"
122124
123125 @if ($activeInlineCreate )
124126 @include (' crud::fields.relationship.field_attributes' )
@@ -250,7 +252,8 @@ function setupInlineCreateButtons(element) {
250252 var $inlineModalRoute = element .attr (' data-inline-modal-route' );
251253 var $inlineModalClass = element .attr (' data-inline-modal-class' );
252254 var $parentLoadedFields = element .attr (' data-parent-loaded-fields' );
253- var $includeMainFormFields = element .attr (' data-include-main-form-fields' );
255+ var $includeMainFormFields = element .attr (' data-include-main-form-fields' ) == ' false' ? false : (element .attr (' data-include-main-form-fields' ) == ' true' ? true : element .attr (' data-include-main-form-fields' ));
256+
254257 var $form = element .closest (' form' );
255258
256259 $inlineCreateButtonElement .on (' click' , function () {
@@ -263,23 +266,22 @@ function setupInlineCreateButtons(element) {
263266
264267
265268 }
269+
266270 // prepare main form fields to be submited in case there are some.
267- // if result is "1" it means all form fields will be passed, developer passed "true".
268- if ($includeMainFormFields == 1 ) {
271+ if (typeof $includeMainFormFields === " boolean" && $includeMainFormFields === true ) {
269272 var $toPass = $form .serializeArray ();
270- $includeMainFormFields = true ;
271273 }else {
272- $fields = JSON .parse ($includeMainFormFields);
273- $serializedForm = $form .serializeArray ();
274+ if (typeof $includeMainFormFields !== " boolean" ) {
275+ var $fields = JSON .parse ($includeMainFormFields);
276+ var $serializedForm = $form .serializeArray ();
274277 var $toPass = [];
275- $fields .forEach (function (value , index ) {
276- $valueFromForm = $serializedForm .filter (field => field .name === value);
277- $toPass .push ($valueFromForm[0 ]);
278+ $fields .forEach (function (value , index ) {
279+ $valueFromForm = $serializedForm .filter (field => field .name === value);
280+ $toPass .push ($valueFromForm[0 ]);
278281
279- });
280- // if it's undefined here, developer passed false.
281- if (typeof $toPass[0 ] === " undefined" ) {
282- $includeMainFormFields = false ;
282+ });
283+
284+ $includeMainFormFields = true ;
283285 }
284286 }
285287 $ .ajax ({
0 commit comments