diff options
Diffstat (limited to 'modules/field_ui/field_ui.js')
-rw-r--r-- | modules/field_ui/field_ui.js | 11 |
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 : ''); } }); |