Fixed single / multi array fields

This commit is contained in:
Djamil Legato
2015-08-03 12:33:03 -07:00
parent c3540f4853
commit fafda56396
3 changed files with 13 additions and 6 deletions

View File

@@ -29,9 +29,11 @@
};
ArrayField.prototype.name = function(name) {
if (name) {
if (name && !this.isValueOnly()) {
this.el.data('grav-array-name', name);
return name;
} else {
return '';
}
return this.el.data('grav-array-name')
@@ -76,7 +78,7 @@
formValues = {};
for (var key in values) { if (values.hasOwnProperty(key)) {
formValues[name + '[' + key + ']'] = values[key];
formValues[this.isValueOnly() ? key : name + '[' + key + ']'] = values[key];
}
}
@@ -101,15 +103,20 @@
var keyField = $(event.target),
valueField = keyField.closest('[data-grav-array-type="row"]').find('[data-grav-array-type="value"]');
valueField.attr('name', keyField.val());
valueField.attr('name', this.getFieldName() + '[' + keyField.val() + ']');
};
ArrayField.prototype.refreshAll = function() {
var that = this;
this.el.find('[data-grav-array-type="value"]').each(function(index, element){
$(element).attr('name', index);
$(element).attr('name', that.getFieldName() + '[' + index + ']');
});
};
ArrayField.prototype.getFieldName = function(element) {
return this.el.data('grav-array-name');
};
ArrayField.prototype._getNewField = function(key, value) {
var name = this.name(),
value_only = this.isValueOnly(),

View File

@@ -115,7 +115,7 @@
this.scanned = true;
//Refresh root.currentValues as toggleables have been initialized
root.currentValues = getState();
//root.currentValues = getState();
};
Form.factories = {};

View File

@@ -15,7 +15,7 @@
{% if field.value_only != true %}
<input data-grav-array-type="key" type="text" value="{{ key }}" placeholder="{{ field.placeholder_key }}" />
{% endif %}
<input data-grav-array-type="value" type="text" name="{{ key }}" value="{{ text|join(', ') }}" placeholder="{{ field.placeholder_value }}" />
<input data-grav-array-type="value" type="text" name="{{ (field.name|fieldName) ~ '[' ~ key ~ ']' }}" value="{{ text|join(', ') }}" placeholder="{{ field.placeholder_value }}" />
<span data-grav-array-action="rem" class="fa fa-minus"></span>
<span data-grav-array-action="add" class="fa fa-plus"></span>
</div>