Enhance nested field handling in grid.js for improved data structure management

This commit is contained in:
2024-11-02 00:19:50 +01:00
parent 1a68e5b58a
commit dad63991ae

View File

@@ -511,17 +511,25 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function()
var formattedValues = {};
jQuery.each(values, function(i, field) {
var fieldName = field.name.replace(/\[(\w*)\]$/, ''); // usuwa [] na końcu nazwy
var isArrayField = /\[\]$/.test(field.name); // sprawdza, czy pole jest tablicą
var fieldName = field.name.replace(/\[\]$/, ''); // usuwa [] na końcu, aby traktować jako jedną tablicę
var nestedFieldMatch = fieldName.match(/^(.+?)\[(.+?)\]$/); // dopasowuje pola z zagnieżdżeniem, np. title[pl]
if (isArrayField) {
// jeśli pole jest tablicą, upewnij się, że mamy tablicę w obiekcie docelowym
if (!Array.isArray(formattedValues[fieldName])) {
if (nestedFieldMatch) {
// Obsługa zagnieżdżonych pól, takich jak title[pl] lub title[en]
var mainField = nestedFieldMatch[1];
var subField = nestedFieldMatch[2];
if (!formattedValues[mainField]) {
formattedValues[mainField] = {};
}
formattedValues[mainField][subField] = field.value;
} else if (field.name.endsWith('[]')) {
// Obsługa pól tablicowych, takich jak categories[]
if (!formattedValues[fieldName]) {
formattedValues[fieldName] = [];
}
formattedValues[fieldName].push(field.value); // dodaj wartość do tablicy
formattedValues[fieldName].push(field.value);
} else {
// dla zwykłych pól
// Obsługa pojedynczych pól
formattedValues[fieldName] = field.value;
}
});