Potential fix array within list (#1774)

This commit is contained in:
Djamil Legato
2019-10-28 14:27:54 -07:00
parent 6485d6f99b
commit 2f2bb64bdc
3 changed files with 13 additions and 7 deletions

View File

@@ -87,7 +87,13 @@ export default class ArrayField {
container.data('array-sort', new Sortable(container.get(0), {
handle: '.fa-bars',
animation: 150
animation: 150,
onUpdate: () => {
const item = container.find('[data-grav-array-type="row"]:first');
this._setTemplate(item);
const template = item.data('array-template');
this.refreshNames(template);
}
}));
});
}
@@ -154,8 +160,8 @@ export default class ArrayField {
inputs.each((index, input) => {
input = $(input);
let name = input.attr('name');
name = name.replace(/\[\d+\]$/, `[${index}]`);
const preserved_name = input.closest('[data-grav-array-name]');
const name = `${preserved_name.attr('data-grav-array-name')}[${index}]`;
input.attr('name', name);
});

View File

@@ -186,7 +186,7 @@ export default class CollectionsField {
// special case to preserve array field index keys
if (prop === 'name' && element.data('gravArrayType')) {
const match_index = element.attr(prop).match(/\[[0-9]{1,}\]$/);
const pattern = element.closest('[data-grav-array-name]').data('gravArrayName');
const pattern = element[0].closest('[data-grav-array-name]').dataset.gravArrayName;
if (match_index && pattern) {
array_index = match_index[0];
element.attr(prop, `${pattern}${match_index[0]}`);

File diff suppressed because one or more lines are too long