summaryrefslogtreecommitdiff
path: root/modules/field_ui/field_ui.js
diff options
context:
space:
mode:
Diffstat (limited to 'modules/field_ui/field_ui.js')
-rw-r--r--modules/field_ui/field_ui.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/modules/field_ui/field_ui.js b/modules/field_ui/field_ui.js
index 0a41c4c6f..3d8881e61 100644
--- a/modules/field_ui/field_ui.js
+++ b/modules/field_ui/field_ui.js
@@ -45,6 +45,11 @@ Drupal.fieldUIFieldOverview = {
$('.field-select', table).each(function () {
this.targetSelect = $('.widget-type-select', $(this).parents('tr').eq(0));
this.targetTextfield = $('.label-textfield', $(this).parents('tr').eq(0));
+ this.targetTextfield
+ .data('field_ui_edited', false)
+ .bind('keyup', function (e) {
+ $(this).data('field_ui_edited', $(this).val() != '');
+ });
$(this).bind('change keyup', function (e, updateText) {
var updateText = (typeof updateText == 'undefined' ? true : updateText);
@@ -54,8 +59,10 @@ Drupal.fieldUIFieldOverview = {
var options = (selectedFieldType && (selectedFieldType in widgetTypes) ? widgetTypes[selectedFieldType] : []);
this.targetSelect.fieldUIPopulateOptions(options, selectedFieldWidget);
- if (updateText) {
- $(this.targetTextfield).attr('value', (selectedField in fields ? fields[selectedField].label : ''));
+ // Only overwrite the "Label" input if it has not been manually
+ // changed, or if it is empty.
+ if (updateText && !this.targetTextfield.data('field_ui_edited')) {
+ this.targetTextfield.val(selectedField in fields ? fields[selectedField].label : '');
}
});