mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-11-07 05:45:53 +01:00
Fixed single / multi array fields
This commit is contained in:
@@ -29,9 +29,11 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ArrayField.prototype.name = function(name) {
|
ArrayField.prototype.name = function(name) {
|
||||||
if (name) {
|
if (name && !this.isValueOnly()) {
|
||||||
this.el.data('grav-array-name', name);
|
this.el.data('grav-array-name', name);
|
||||||
return name;
|
return name;
|
||||||
|
} else {
|
||||||
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.el.data('grav-array-name')
|
return this.el.data('grav-array-name')
|
||||||
@@ -76,7 +78,7 @@
|
|||||||
formValues = {};
|
formValues = {};
|
||||||
|
|
||||||
for (var key in values) { if (values.hasOwnProperty(key)) {
|
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),
|
var keyField = $(event.target),
|
||||||
valueField = keyField.closest('[data-grav-array-type="row"]').find('[data-grav-array-type="value"]');
|
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() {
|
ArrayField.prototype.refreshAll = function() {
|
||||||
|
var that = this;
|
||||||
this.el.find('[data-grav-array-type="value"]').each(function(index, element){
|
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) {
|
ArrayField.prototype._getNewField = function(key, value) {
|
||||||
var name = this.name(),
|
var name = this.name(),
|
||||||
value_only = this.isValueOnly(),
|
value_only = this.isValueOnly(),
|
||||||
|
|||||||
@@ -115,7 +115,7 @@
|
|||||||
this.scanned = true;
|
this.scanned = true;
|
||||||
|
|
||||||
//Refresh root.currentValues as toggleables have been initialized
|
//Refresh root.currentValues as toggleables have been initialized
|
||||||
root.currentValues = getState();
|
//root.currentValues = getState();
|
||||||
};
|
};
|
||||||
|
|
||||||
Form.factories = {};
|
Form.factories = {};
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
{% if field.value_only != true %}
|
{% if field.value_only != true %}
|
||||||
<input data-grav-array-type="key" type="text" value="{{ key }}" placeholder="{{ field.placeholder_key }}" />
|
<input data-grav-array-type="key" type="text" value="{{ key }}" placeholder="{{ field.placeholder_key }}" />
|
||||||
{% endif %}
|
{% 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="rem" class="fa fa-minus"></span>
|
||||||
<span data-grav-array-action="add" class="fa fa-plus"></span>
|
<span data-grav-array-action="add" class="fa fa-plus"></span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user