- Patch #930670 by David_Rothstein: table-based dashboard admin page should be linked to from the dashboard only (not from the rest of the admin UI).

merge-requests/26/head
Dries Buytaert 2010-10-21 11:55:09 +00:00
parent 87e40b04b2
commit b094ff12d4
2 changed files with 13 additions and 13 deletions

View File

@ -19,7 +19,7 @@ function dashboard_help($path, $arg) {
$output .= '</dl>';
return $output;
case 'admin/structure/dashboard':
case 'admin/dashboard/configure':
// @todo This assumes the current page is being displayed using the same
// theme that the dashboard is displayed in.
$output = '<p>' . t('Rearrange blocks for display on the <a href="@dashboard-url">dashboard</a>. Disabling a block makes it available on the main <a href="@blocks-url">blocks administration page</a>.', array('@dashboard-url' => url('admin/dashboard'), '@blocks-url' => url("admin/structure/block/list/{$GLOBALS['theme_key']}"))) . '</p>';
@ -31,12 +31,6 @@ function dashboard_help($path, $arg) {
* Implements hook_menu().
*/
function dashboard_menu() {
$items['admin/structure/dashboard'] = array(
'title' => 'Dashboard',
'description' => 'Configure which blocks can be shown on the dashboard.',
'page callback' => 'dashboard_admin_blocks',
'access arguments' => array('administer blocks'),
);
$items['admin/dashboard'] = array(
'title' => 'Dashboard',
'description' => 'View and customize your dashboard.',
@ -46,6 +40,13 @@ function dashboard_menu() {
// the top corner of the window as a convenient "home link".
'weight' => -15,
);
$items['admin/dashboard/configure'] = array(
'title' => 'Configure available dashboard blocks',
'description' => 'Configure which blocks can be shown on the dashboard.',
'page callback' => 'dashboard_admin_blocks',
'access arguments' => array('administer blocks'),
'type' => MENU_VISIBLE_IN_BREADCRUMB,
);
$items['admin/dashboard/customize'] = array(
'title' => 'Customize dashboard',
'description' => 'Customize your dashboard.',
@ -250,7 +251,7 @@ function dashboard_admin($launch_customize = FALSE) {
);
$build = array(
'#theme' => 'dashboard_admin',
'#message' => t('To customize the dashboard page, move blocks to the dashboard regions on the <a href="@dashboard">Dashboard administration page</a>, or enable JavaScript on this page to use the drag-and-drop interface.', array('@dashboard' => url('admin/structure/dashboard'))),
'#message' => t('To customize the dashboard page, move blocks to the dashboard regions on the <a href="@dashboard">Dashboard administration page</a>, or enable JavaScript on this page to use the drag-and-drop interface.', array('@dashboard' => url('admin/dashboard/configure'))),
'#access' => user_access('administer blocks'),
'#attached' => array(
'js' => array(
@ -277,7 +278,6 @@ function dashboard_admin($launch_customize = FALSE) {
function dashboard_admin_blocks() {
global $theme_key;
drupal_theme_initialize();
drupal_set_title(t('Configure available dashboard blocks'));
module_load_include('inc', 'block', 'block.admin');
// Prepare the blocks for the current theme, and remove those that are
@ -330,10 +330,10 @@ function dashboard_form_dashboard_admin_display_form_alter(&$form, &$form_state)
// dashboard blocks administration page.
foreach ($form['blocks'] as &$block) {
if (isset($block['configure']['#href'])) {
$block['configure']['#options']['query']['destination'] = 'admin/structure/dashboard';
$block['configure']['#options']['query']['destination'] = 'admin/dashboard/configure';
}
if (isset($block['delete']['#href'])) {
$block['delete']['#options']['query']['destination'] = 'admin/structure/dashboard';
$block['delete']['#options']['query']['destination'] = 'admin/dashboard/configure';
}
}
}
@ -598,7 +598,7 @@ function theme_dashboard_region($variables) {
*/
function theme_dashboard_disabled_blocks($variables) {
extract($variables);
$output = '<div class="canvas-content"><p>' . t('Drag and drop these blocks to the columns below. Changes are automatically saved. More options are available on the <a href="@dashboard-url">configuration page</a>.', array('@dashboard-url' => url('admin/structure/dashboard'))) . '</p>';
$output = '<div class="canvas-content"><p>' . t('Drag and drop these blocks to the columns below. Changes are automatically saved. More options are available on the <a href="@dashboard-url">configuration page</a>.', array('@dashboard-url' => url('admin/dashboard/configure'))) . '</p>';
$output .= '<div id="disabled-blocks"><div class="region disabled-blocks clearfix">';
foreach ($blocks as $block) {
$output .= theme('dashboard_disabled_block', array('block' => $block));

View File

@ -65,7 +65,7 @@ class DashboardBlocksTestCase extends DrupalWebTestCase {
$dashboard_regions = dashboard_region_descriptions();
// Ensure blocks can be placed in dashboard regions.
$this->drupalGet('admin/structure/dashboard');
$this->drupalGet('admin/dashboard/configure');
foreach ($dashboard_regions as $region => $description) {
$elements = $this->xpath('//option[@value=:region]', array(':region' => $region));
$this->assertTrue(!empty($elements), t('%region is an available choice on the dashboard block configuration page.', array('%region' => $region)));