Index: modules/signup_status_limit/signup_status_limit.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup_status/modules/signup_status_limit/signup_status_limit.module,v retrieving revision 1.4 diff -u -p -r1.4 signup_status_limit.module --- modules/signup_status_limit/signup_status_limit.module 18 Sep 2009 19:24:51 -0000 1.4 +++ modules/signup_status_limit/signup_status_limit.module 21 Sep 2009 04:38:57 -0000 @@ -28,10 +28,61 @@ function signup_status_limit_form_alter( module_load_include('inc', 'signup_status_limit', 'signup_status_limit.signup_form'); return signup_status_limit_alter_signup_edit_form($form, $form_state); + case 'signup_node_admin_summary_form': + return signup_status_limit_alter_signup_node_admin_summary_form($form, $form_state); + } } /** + * Alter the signup summary form on the node/N/signups/admin page. + * + * Depending on what kind of signup limit the node is configured to use, + * modify the summary fieldset to display the right limit information and + * provide a link to the settings page. + */ +function signup_status_limit_alter_signup_node_admin_summary_form(&$form, &$form_state) { + $node = node_load($form['nid']['#value']); + $form['signup_limit_type'] = array( + '#type' => 'item', + '#title' => t('Signup limit type'), + '#value' => l(($node->signup_status_limit_type == 'status') ? t('Per-status limits') : t('Limit on total signups'), 'node/' . $node->nid . '/signups/settings', array('fragment' => 'signup-limit')), + ); + if ($node->signup_status_limit_type == 'global') { + $form['limit'] = array( + '#type' => 'item', + '#title' => t('Limit on total signups'), + '#value' => $node->signup_close_signup_limit, + '#weight' => 1, + ); + $form['slots_used']['#weight'] = 2; + } + else { + unset($form['slots_used']); + unset($form['limit']); + $header = array( + t('Signup status'), + t('Limit'), + t('Total'), + ); + $signup_status_codes = signup_status_codes(); + $rows = array(); + foreach (signup_status_codes() as $cid => $code) { + $rows[] = array( + check_plain($code['name']), + isset($node->signup_status_limit[$cid]['limit']) ? $node->signup_status_limit[$cid]['limit'] : 0, + isset($node->signup_status_limit[$cid]['total']) ? $node->signup_status_limit[$cid]['total'] : 0, + ); + } + $form['signup_status_limits'] = array( + '#type' => 'item', + '#value' => theme('table', $header, $rows), + ); + } +} + + +/** * Implement hook_theme(). */ function signup_status_limit_theme() {