Skip to content

Commit b53c692

Browse files
committed
fix inline main modal fields inclusion
1 parent 1d0c1b6 commit b53c692

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

src/resources/views/crud/fields/relationship/fetch_or_create.blade.php

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,13 @@
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
}
@@ -118,7 +120,7 @@
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

Comments
 (0)