summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2011-09-05 11:43:45 -0700
committerwebchick <webchick@24967.no-reply.drupal.org>2011-09-05 11:43:45 -0700
commit7cba1fdec6a42fb4e699f236a344f29ecc392e85 (patch)
treeced0ffc03cc404d2acd14ee5b62a5f44dcb160b5 /modules
parent2c91411ad45f31327813f315e570c214c685ce70 (diff)
downloadbrdo-7cba1fdec6a42fb4e699f236a344f29ecc392e85.tar.gz
brdo-7cba1fdec6a42fb4e699f236a344f29ecc392e85.tar.bz2
Issue #937380 by David_Rothstein, swentel: Fixed errors when submitting the shortcut set configuration page after deleting all shortcuts.
Diffstat (limited to 'modules')
-rw-r--r--modules/shortcut/shortcut.admin.inc20
1 files changed, 15 insertions, 5 deletions
diff --git a/modules/shortcut/shortcut.admin.inc b/modules/shortcut/shortcut.admin.inc
index 9735d3760..4c8bf53af 100644
--- a/modules/shortcut/shortcut.admin.inc
+++ b/modules/shortcut/shortcut.admin.inc
@@ -264,6 +264,7 @@ function shortcut_set_add_form_submit($form, &$form_state) {
* @see shortcut_set_customize_submit()
*/
function shortcut_set_customize($form, &$form_state, $shortcut_set) {
+ $form['#shortcut_set_name'] = $shortcut_set->set_name;
$form['shortcuts'] = array(
'#tree' => TRUE,
'#weight' => -20,
@@ -299,7 +300,10 @@ function shortcut_set_customize($form, &$form_state, $shortcut_set) {
'js' => array(drupal_get_path('module', 'shortcut') . '/shortcut.admin.js'),
);
- $form['actions'] = array('#type' => 'actions');
+ $form['actions'] = array(
+ '#type' => 'actions',
+ '#access' => !empty($shortcut_set->links),
+ );
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save changes'),
@@ -336,9 +340,15 @@ function shortcut_set_customize_submit($form, &$form_state) {
function theme_shortcut_set_customize($variables) {
$form = $variables['form'];
$map = array('disabled' => t('Disabled'), 'enabled' => t('Enabled'));
+ $shortcuts_by_status = array(
+ 'enabled' => element_children($form['shortcuts']['enabled']),
+ 'disabled' => element_children($form['shortcuts']['disabled']),
+ );
+ // Do not add any rows to the table if there are no shortcuts to display.
+ $statuses = empty($shortcuts_by_status['enabled']) && empty($shortcuts_by_status['disabled']) ? array() : array_keys($shortcuts_by_status);
$rows = array();
- foreach (array('enabled', 'disabled') as $status) {
+ foreach ($statuses as $status) {
drupal_add_tabledrag('shortcuts', 'match', 'sibling', 'shortcut-status-select');
drupal_add_tabledrag('shortcuts', 'order', 'sibling', 'shortcut-weight');
$rows[] = array(
@@ -349,7 +359,7 @@ function theme_shortcut_set_customize($variables) {
'class' => array('shortcut-status', 'shortcut-status-' . $status),
);
- foreach (element_children($form['shortcuts'][$status]) as $key) {
+ foreach ($shortcuts_by_status[$status] as $key) {
$shortcut = &$form['shortcuts'][$status][$key];
$row = array();
$row[] = drupal_render($shortcut['name']);
@@ -373,7 +383,7 @@ function theme_shortcut_set_customize($variables) {
'class' => array('shortcut-slot-empty'),
);
}
- $count_shortcuts = count(element_children($form['shortcuts'][$status]));
+ $count_shortcuts = count($shortcuts_by_status[$status]);
if (!empty($count_shortcuts)) {
for ($i = 0; $i < min($count_shortcuts, shortcut_max_slots()); $i++) {
$rows['empty-' . $i]['class'][] = 'shortcut-slot-hidden';
@@ -383,7 +393,7 @@ function theme_shortcut_set_customize($variables) {
}
$header = array(t('Name'), t('Weight'), t('Status'), array('data' => t('Operations'), 'colspan' => 2));
- $output = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'shortcuts')));
+ $output = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'shortcuts'), 'empty' => t('No shortcuts available. <a href="@link">Add a shortcut</a>.', array('@link' => url('admin/config/user-interface/shortcut/' . $form['#shortcut_set_name'] . '/add-link')))));
$output .= drupal_render($form['actions']);
$output = drupal_render_children($form) . $output;
return $output;