Index: modules/dashboard/dashboard.info
===================================================================
RCS file: modules/dashboard/dashboard.info
diff -N modules/dashboard/dashboard.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/dashboard/dashboard.info	27 Aug 2009 10:25:05 -0000
@@ -0,0 +1,9 @@
+; $Id$
+name = Dashboard
+description = A module that provides a dashboard interface for organizing and tracking various information within your site.
+core = 7.x
+package = Core
+version = VERSION
+files[] = dashboard.info
+files[] = dashboard.module
+dependencies[] = block
Index: modules/dashboard/dashboard.js
===================================================================
RCS file: modules/dashboard/dashboard.js
diff -N modules/dashboard/dashboard.js
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/dashboard/dashboard.js	27 Aug 2009 10:25:05 -0000
@@ -0,0 +1,26 @@
+// $Id: toolbar.js,v 1.1 2009/07/04 05:37:30 dries Exp $
+(function ($) {
+
+/**
+ * Implementation of Drupal.behaviors for dashboard.
+ */
+Drupal.behaviors.dashboard = {
+  attach: function() {
+    $('#content').append('<div class="customize"><input type="button" class="form-submit" value="' + Drupal.t('Customize') + '"></input></div>');
+    $('#content .customize input').click(Drupal.behaviors.dashboard.showDisabledBlocks);
+  },
+  
+  showDisabledBlocks: function() {
+    $('#content').load(Drupal.settings.dashboard.customize);
+
+    var regions = $('div.region');
+    regions.sortable({
+      items: '>div.block',
+      connectWith: regions,
+      opacity: 0.8,
+      cursor: 'move'
+    });
+  }
+};
+
+})(jQuery);
Index: modules/dashboard/dashboard.module
===================================================================
RCS file: modules/dashboard/dashboard.module
diff -N modules/dashboard/dashboard.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/dashboard/dashboard.module	27 Aug 2009 10:25:05 -0000
@@ -0,0 +1,64 @@
+<?php
+// $Id$
+
+/**
+ * Implement hook_menu().
+ */
+function dashboard_menu() {
+  $items['admin/dashboard'] = array(
+    'title' => 'Dashboard',
+    'page callback' => 'dashboard_admin',
+    'access arguments' => array('access toolbar'),
+    'type' => MENU_CALLBACK,
+  );
+  $items['admin/dashboard/customize'] = array(
+    'page callback' => 'dashboard_show_disabled',
+    'access arguments' => array('access toolbar'),
+    'type' => MENU_CALLBACK,
+  );
+  return $items;
+}
+
+/**
+ * Dashboard page callback
+ */
+function dashboard_admin() {
+  drupal_add_js(drupal_get_path('module', 'dashboard') . '/dashboard.js');
+  drupal_add_js(array('dashboard' => array('customize' => url('admin/dashboard/customize'))), array('type' => 'setting'));
+  drupal_add_library('system', 'ui.sortable');
+  return '';
+}
+
+/**
+ * Implement hook_block_list_alter().
+ *
+ * Skip rendering dashboard blocks when not on the dashboard page itself.
+ */
+function dashboard_block_list_alter(&$blocks) {
+  if ($_GET['q'] != 'admin/dashboard') {
+    foreach ($blocks as $key => $block) {
+      if (strpos($block->region, 'dashboard') === 0) {
+        unset($blocks[$key]);
+      }
+    }
+  }
+}
+
+function dashboard_show_disabled() {
+  global $theme_key;
+
+  // Theme system not initialized at this point.
+  drupal_theme_initialize();
+
+  $output = '<div id="disabled-blocks" class="clearfix">';
+  $output .= '<h2>' . t('Drag and drop blocks to their place') . '</h2>';
+  $result = db_query("SELECT * FROM {block} WHERE theme = :theme AND status = 0", array(':theme' => $theme_key));
+  foreach ($result as $block) {
+    $output .= '<div class="disabled-block disabled-' . $block->module . '-' . $block->delta . '">' . $block->module . '-' . $block->delta . '</div>';
+  }
+  $output .= '</div>';
+  
+  print $output;
+  exit();
+  
+}
Index: modules/toolbar/toolbar.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/toolbar/toolbar.install,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 toolbar.install
--- modules/toolbar/toolbar.install	30 Jul 2009 19:24:21 -0000	1.3
+++ modules/toolbar/toolbar.install	27 Aug 2009 10:25:05 -0000
@@ -27,7 +27,7 @@ function toolbar_install() {
   $items = array(
     'node/add' => 'Add',
     'admin/content' => 'Find content',
-    'admin' => 'Dashboard',
+    'admin/dashboard' => 'Dashboard',
   );
   $weight = -20;
   foreach ($items as $path => $title) {
Index: themes/seven/seven.info
===================================================================
RCS file: /cvs/drupal/drupal/themes/seven/seven.info,v
retrieving revision 1.1
diff -u -p -u -p -r1.1 seven.info
--- themes/seven/seven.info	31 Jul 2009 19:35:57 -0000	1.1
+++ themes/seven/seven.info	27 Aug 2009 10:25:05 -0000
@@ -11,3 +11,7 @@ regions[content] = Content
 regions[help] = Help
 regions[page_top] = Page top
 regions[page_bottom] = Page bottom
+regions[dashboard_thick] = Dashboard thick
+regions[dashboard_thin] = Dashboard thin
+;hidden_regions[] = dashboard_thick
+;hidden_regions[] = dashboard_thin
Index: themes/seven/style.css
===================================================================
RCS file: /cvs/drupal/drupal/themes/seven/style.css,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 style.css
--- themes/seven/style.css	23 Aug 2009 01:05:12 -0000	1.14
+++ themes/seven/style.css	27 Aug 2009 10:25:05 -0000
@@ -727,3 +727,57 @@ body.overlay #page {
 body.overlay #block-system-main {
   padding: 20px;
 }
+
+/* Dashboard */
+
+body.page-admin-dashboard div#page {
+  padding-top:20px;
+}
+
+body.page-admin-dashboard div#dashboard-thick {
+  width: 65%;
+  float: left;
+  min-height: 1px;
+  margin: 5px;
+}
+
+body.page-admin-dashboard div#dashboard-thin {
+  width: 30%;
+  float: left;
+  min-height: 1px;
+  margin: 5px;
+}
+
+body.page-admin-dashboard div.block {
+  border: 1px solid #e2e1dc;
+  margin-bottom: 20px;
+}
+
+body.page-admin-dashboard div.block h2 {
+  background-color:#e2e1dc;
+  padding: 3px 5px;
+}
+
+body.page-admin-dashboard div.block div.content {
+  padding: 10px 5px 5px 5px;
+}
+
+body.page-admin-dashboard div.block div.content ul.menu {
+  margin-left:20px;
+}
+
+body.page-admin-dashboard.one-sidebar div#content div.block {
+  margin-right:20px;
+}
+
+body.page-admin-dashboard #disabled-blocks {
+  margin: 5px;
+  padding: 10px;
+}
+body.page-admin-dashboard #disabled-blocks .disabled-block {
+  background: #e2e1dc;
+  padding: 4px;
+  margin: 3px;
+  float: left; 
+  -moz-border-radius: 4px;
+}
