Index: misc/teaser.js =================================================================== RCS file: /cvs/drupal/drupal/misc/teaser.js,v retrieving revision 1.10 diff -u -r1.10 teaser.js --- misc/teaser.js 13 Nov 2007 14:04:08 -0000 1.10 +++ misc/teaser.js 21 Dec 2007 01:47:11 -0000 @@ -17,6 +17,7 @@ // Move teaser textarea before body, and remove its form-item wrapper. var body = $('#'+ Drupal.settings.teaser[this.id]); var checkbox = $('#'+ Drupal.settings.teaserCheckbox[this.id]).parent(); + var checked = $(checkbox).children('input').attr('checked') ? true : false; var parent = teaser[0].parentNode; $(body).before(teaser); $(parent).remove(); @@ -30,13 +31,18 @@ if (teaser.val()) { body.val(trim(teaser.val()) +'\r\n\r\n'+ trim(body.val())); } - // Hide and disable teaser + // Empty, hide and disable teaser. + teaser[0].value = ''; $(teaser).attr('disabled', 'disabled'); $(teaser).parent().slideUp('fast'); - // Change label + // Change label. $(this).val(Drupal.t('Split summary at cursor')); - // Show separate teaser checkbox + // Hide separate teaser checkbox. $(checkbox).hide(); + // Because we don't want a hidden checkbox to affect saved data, save + // the current checked status and restore the default while hidden. + checked = $(checkbox).children('input').attr('checked') ? true : false; + $(checkbox).children('input').attr('checked', true); } // Split the teaser from the body. @@ -54,8 +60,8 @@ $(teaser).parent().slideDown('fast'); // Change label $(this).val(Drupal.t('Join summary')); - // Show separate teaser checkbox - $(checkbox).show(); + // Show separate teaser checkbox, restore checked value. + $(checkbox).show().children('input').attr('checked', checked); } // Add split/join button. @@ -75,7 +81,7 @@ else { $(teaser).hide(); $('input', button).val(Drupal.t('Split summary at cursor')).toggle(split_teaser, join_teaser); - $(checkbox).hide(); + $(checkbox).hide().children('input').attr('checked', true); } }); Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.930 diff -u -r1.930 node.module --- modules/node/node.module 20 Dec 2007 09:20:41 -0000 1.930 +++ modules/node/node.module 21 Dec 2007 01:47:13 -0000 @@ -777,7 +777,10 @@ $node->teaser = node_teaser($node->body, isset($node->format) ? $node->format : NULL); // Chop off the teaser from the body if needed. if (empty($node->teaser_include) && $node->teaser == substr($node->body, 0, strlen($node->teaser))) { - $node->body = substr($node->body, strlen($node->teaser)); + // Check if the teaser exists. + if (strlen($node->teaser) !== strlen($node->body)) { + $node->body = substr($node->body, strlen($node->teaser)); + } } } else { Index: modules/node/node.pages.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v retrieving revision 1.19 diff -u -r1.19 node.pages.inc --- modules/node/node.pages.inc 20 Dec 2007 09:20:41 -0000 1.19 +++ modules/node/node.pages.inc 21 Dec 2007 01:47:13 -0000 @@ -281,7 +281,7 @@ '#type' => 'checkbox', '#title' => t('Show summary in full view'), '#default_value' => $include, - '#prefix' => '
', + '#prefix' => '
', '#suffix' => '
', ); Index: modules/system/system.css =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.css,v retrieving revision 1.45 diff -u -r1.45 system.css --- modules/system/system.css 13 Dec 2007 10:14:18 -0000 1.45 +++ modules/system/system.css 21 Dec 2007 01:47:13 -0000 @@ -397,6 +397,9 @@ padding-right: 5%; /* LTR */ margin: 0; } +.teaser-checkbox { + margin-bottom: -2em; +} .teaser-checkbox div.form-item { float: right; /* LTR */ margin: 0 5% 0 0; /* LTR */