Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.48
diff -u -p -r1.48 block.admin.inc
--- modules/block/block.admin.inc	12 Aug 2009 11:43:09 -0000	1.48
+++ modules/block/block.admin.inc	22 Aug 2009 07:07:11 -0000
@@ -180,6 +180,8 @@ function _block_compare($a, $b) {
  * Menu callback; displays the block configuration form.
  */
 function block_admin_configure(&$form_state, $module = NULL, $delta = 0) {
+  drupal_add_js(drupal_get_path('module', 'block') . '/block.js');
+
   $form['module'] = array(
     '#type' => 'value',
     '#value' => $module,
@@ -220,12 +222,18 @@ function block_admin_configure(&$form_st
   if (isset($info[$delta])) {
     drupal_set_title(t("'%name' block", array('%name' => $info[$delta]['info'])), PASS_THROUGH);
   }
+  
+  // Visibility
+  $form['block_vis_settings'] = array(
+    '#type' => 'vertical_tabs',
+  );
 
   $form['page_vis_settings'] = array(
     '#type' => 'fieldset',
     '#title' => t('Page specific visibility settings'),
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
+    '#group' => 'block_vis_settings',
   );
 
   $access = user_access('use PHP for settings');
@@ -267,6 +275,7 @@ function block_admin_configure(&$form_st
     '#title' => t('Role specific visibility settings'),
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
+    '#group' => 'block_vis_settings',
   );
   $form['role_vis_settings']['roles'] = array(
     '#type' => 'checkboxes',
@@ -286,6 +295,7 @@ function block_admin_configure(&$form_st
     '#title' => t('Content type specific visibility settings'),
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
+    '#group' => 'block_vis_settings',
   );
   $form['content_type_vis_settings']['types'] = array(
     '#type' => 'checkboxes',
@@ -301,6 +311,7 @@ function block_admin_configure(&$form_st
     '#title' => t('User specific visibility settings'),
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
+    '#group' => 'block_vis_settings',
   );
   $form['user_vis_settings']['custom'] = array(
     '#type' => 'radios',
Index: modules/block/block.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.js,v
retrieving revision 1.10
diff -u -p -r1.10 block.js
--- modules/block/block.js	4 Aug 2009 06:26:52 -0000	1.10
+++ modules/block/block.js	22 Aug 2009 07:07:11 -0000
@@ -1,6 +1,43 @@
 // $Id: block.js,v 1.10 2009/08/04 06:26:52 webchick Exp $
 (function ($) {
 
+Drupal.behaviors.blockVisibility = {
+  attach: function (context) {
+    // Provide the vertical tab summaries.
+    $('fieldset#edit-page-vis-settings', context).setSummary(function(context) {
+      var vals = [];
+      if ($('#edit-visibility-0', context).is(':checked')) {
+        vals.unshift(Drupal.t("Every page expect those listed."));
+      }
+      if ($('#edit-visibility-1', context).is(':checked')) {
+        vals.unshift(Drupal.t("Only the pages specified."));
+      }
+      return vals.join(', ');
+    });
+    $('fieldset#edit-role-vis-settings', context).setSummary(function(context) {
+      var vals = [];
+      $("input[type^='checkbox']:checked", context).parent().each(function() {
+        vals.push(Drupal.checkPlain($(this).text()));
+      });
+      return vals.join(', ');
+    });
+    $('fieldset#edit-content-type-vis-settings', context).setSummary(function(context) {
+      var vals = [];
+      $("input[type^='checkbox']:checked", context).parent().each(function() {
+        vals.push(Drupal.checkPlain($(this).text()));
+      });
+      return vals.join(', ');
+    });
+    $('fieldset#edit-user-vis-settings', context).setSummary(function(context) {
+      var vals = [];
+      $("input[type^='radio']:checked", context).parent().each(function() {
+        vals.push(Drupal.checkPlain($(this).text()));
+      });
+      return vals.join(', ');
+    });
+  }
+};
+
 /**
  * Move a block in the blocks table from one region to another via select list.
  *
