? .project
? modules/.DS_Store
? modules/field/modules/text/text.js
? sites/all/themes/.DS_Store
? sites/default/.DS_Store
? sites/default/files
? sites/default/settings.php
Index: modules/field/modules/text/text.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/modules/text/text.module,v
retrieving revision 1.15
diff -u -p -r1.15 text.module
--- modules/field/modules/text/text.module	3 Jul 2009 18:19:29 -0000	1.15
+++ modules/field/modules/text/text.module	27 Jul 2009 15:53:54 -0000
@@ -688,6 +688,7 @@ 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,
+    '#suffix' => ' <div id="body-summary-suffix">&nbsp;</div>',
   );
 
   $field_key = $element['#columns'][0];
Index: modules/node/node.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.js,v
retrieving revision 1.4
diff -u -p -r1.4 node.js
--- modules/node/node.js	27 Apr 2009 20:19:37 -0000	1.4
+++ modules/node/node.js	27 Jul 2009 15:53:54 -0000
@@ -32,4 +32,35 @@ Drupal.behaviors.nodeFieldsetSummaries =
   }
 };
 
+Drupal.behaviors.contentSummary = {
+  attach: function () {
+    // TODO: compare trimmed version of body (result of text_summary()).
+    if ($('#edit-body-0-value').val().replace(/</g,"&lt;").replace(/>/g,"&gt;") == $('#edit-body-0-summary').html() || $('#edit-body-0-value').val() == '') {
+      $('.body-0-summary-wrapper label').hide();
+      $('.body-0-summary-wrapper .resizable-textarea').hide();
+      $('.body-0-summary-wrapper .description').hide();
+      $('#edit-body-0-value').keyup(function () {
+        // TODO: use ajax to display the formatted and trimmed body.
+        var teaser = $(this).val().replace(/\n/g,"<br />");
+        if (teaser != '') {
+          $('.body-0-summary-wrapper label').show();
+          $('#edit-body-0-summary').val(teaser);
+          $('#body-summary-suffix').empty().append(teaser + '<br />[').append($('<a href="#">' + Drupal.t('Edit') + '</a>').click(function () {
+            $('.body-0-summary-wrapper .resizable-textarea').show();
+            $('.body-0-summary-wrapper .description').show();
+            $('#body-summary-suffix').hide();
+            $('#edit-body-0-value').unbind('keyup');
+            return false;
+          })).append(']');
+        }
+        else {
+          $('#edit-body-0-value').val(teaser);
+          $('#body-summary-suffix').html('');
+        }
+      });
+      $('#edit-body-0-value').keyup();
+    }
+  }
+};
+
 })(jQuery);
