Index: modules/field/modules/text/text.js =================================================================== RCS file: modules/field/modules/text/text.js diff -N modules/field/modules/text/text.js --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/field/modules/text/text.js 15 Aug 2009 01:29:42 -0000 @@ -0,0 +1,65 @@ +// $Id$ + +(function ($) { + +Drupal.behaviors.textareaSummary = { + attach: function () { + $('textarea.summary-textarea').each(function () { + var fieldset = $(this).closest('fieldset'); + var div = $(this).closest('div.summary-wrapper'); + // If no summary is set, hide the summary field. + if ($(this).val() === '') { + $(div).hide(); + if ($(fieldset).find('div.full-text-wrapper').prev('label > span.field-edit-link').size()) { + $(fieldset).find('div.full-text-wrapper span.field-edit-link').show(); + } + else { + $(fieldset).find('div.full-text-wrapper div.form-item-textarea label').append($('(' + Drupal.t('Edit summary') + ')')); + $(fieldset).find('a.link-edit-summary').click(function () { + $(fieldset).find('div.summary-wrapper').show(); + $(fieldset).find('label span.field-edit-link').hide(); + if ($(fieldset).find('div.summary-wrapper span.field-edit-link').size()) { + $(fieldset).find('div.summary-wrapper span.field-edit-link').show(); + } + else { + $(fieldset).find('div.summary-wrapper div.form-item-textarea label').append($('()')); + $(fieldset).find('a.link-hide-summary').click(function () { + $(fieldset).find('label span.field-edit-link').show(); + $(div).hide(); + return false; + }); + } + return false; + }); + } + } + // If there is a summary set, don't hide the summary field. + else { + if ($(div).prev('label > span.field-edit-link').size()) { + $(div).prev('label > span.field-edit-link').show(); + } + else { + $(fieldset).find('div.summary-wrapper div.form-item-textarea label').append($('()')); + $(fieldset).find('a.link-hide-summary').click(function () { + if ($(fieldset).find('div.full-text-wrapper span.field-edit-link').size()) { + $(fieldset).find('div.full-text-wrapper span.field-edit-link').show(); + } + else { + $(fieldset).find('div.full-text-wrapper div.form-item-textarea label').append($('(' + Drupal.t('Edit summary') + ')')); + $(fieldset).find('a.link-edit-summary').click(function () { + $(fieldset).find('div.full-text-wrapper').find('label span.field-edit-link').hide(); + $(fieldset).find('div.summary-wrapper').show(); + return false; + }); + } + $(div).hide(); + return false; + }); + } + } + }); + } +}; + +})(jQuery); + Index: modules/field/modules/text/text.module =================================================================== RCS file: /cvs/drupal/drupal/modules/field/modules/text/text.module,v retrieving revision 1.17 diff -u -p -r1.17 text.module --- modules/field/modules/text/text.module 4 Aug 2009 06:38:56 -0000 1.17 +++ modules/field/modules/text/text.module 15 Aug 2009 01:29:42 -0000 @@ -537,6 +537,7 @@ function text_elements() { * the form item for a single element for this field */ function text_field_widget(&$form, &$form_state, $field, $instance, $items, $delta = 0) { + drupal_add_js(drupal_get_path('module', 'text') . '/text.js'); $element = array( '#type' => $instance['widget']['type'], '#default_value' => isset($items[$delta]) ? $items[$delta] : '', @@ -664,6 +665,9 @@ function text_textarea_with_summary_proc '#description' => t('Leave blank to use trimmed value of full text as the summary.'), '#required' => $element['#required'], '#display' => $display, + '#attributes' => array('class' => 'summary-textarea'), + '#prefix' => '