--- sites/all/modules/signup_status/signup_status.admin.inc 2009-01-19 06:02:54.000000000 -0500 +++ sites/all/modules/signup_status/signup_status.admin.inc-NEW 2009-07-02 17:37:52.000000000 -0400 @@ -21,6 +21,7 @@ function signup_status_admin_list() { t('Description'), t('Modifies signup count'), t('Show on form'), + t('Default'), array('data' => t('Operations'), 'colspan' => 2), ); @@ -31,6 +32,7 @@ function signup_status_admin_list() { $code['description'], empty($code['mod_signup_count']) ? t('No') : t('Yes'), empty($code['show_on_form']) ? t('No') : t('Yes'), + empty($code['default_status']) ? t('No') : t('Yes'), l(t('edit'), 'admin/settings/signup_status/edit/'. $cid), l(t('delete'), 'admin/settings/signup_status/delete/'. $cid), ); @@ -85,6 +87,12 @@ function signup_status_admin_form(&$form '#description' => t('If selected, users can select this status when signing up for a node.'), '#default_value' => isset($cid) ? $codes[$cid]['show_on_form'] : NULL, ); + $form['default_status'] = array( + '#type' => 'checkbox', + '#title' => t('Default'), + '#description' => t('If selected, this status will be the default. If another status is already selected as the default, this selection will overwrite it so that there is only one default.'), + '#default_value' => isset($cid) ? $codes[$cid]['default_status'] : NULL, + ); $form['submit'] = array( '#type' => 'submit', @@ -117,12 +125,18 @@ function signup_status_admin_form_valida function signup_status_admin_form_submit($form, &$form_state) { $values = $form_state['values']; if (!isset($values['cid'])) { - db_query("INSERT INTO {signup_status_codes} (name, description, mod_signup_count, show_on_form) VALUES ('%s', '%s', %d, %d)", $values['name'], $values['description'], $values['mod_signup_count'], $values['show_on_form']); + if ((int)$values['default_status'] === 1) { + db_query("UPDATE {signup_status_codes} SET default_status = %d", 0); + } + db_query("INSERT INTO {signup_status_codes} (name, description, mod_signup_count, show_on_form, default_status) VALUES ('%s', '%s', %d, %d, %d)", $values['name'], $values['description'], $values['mod_signup_count'], $values['show_on_form'], $values['default_status']); drupal_set_message(t('Status code %name has been added.', array('%name' => $values['name']))); watchdog('signup_status', 'Status code %name has been added.', array('%name' => $values['name'])); } else { - db_query("UPDATE {signup_status_codes} SET name = '%s', description = '%s', mod_signup_count = %d, show_on_form = %d WHERE cid = %d", $values['name'], $values['description'], $values['mod_signup_count'], $values['show_on_form'], $values['cid']); + if ((int)$values['default_status'] === 1) { + db_query("UPDATE {signup_status_codes} SET default_status = %d", 0); + } + db_query("UPDATE {signup_status_codes} SET name = '%s', description = '%s', mod_signup_count = %d, show_on_form = %d, default_status = %d WHERE cid = %d", $values['name'], $values['description'], $values['mod_signup_count'], $values['show_on_form'], $values['default_status'], $values['cid']); drupal_set_message(t('Status code %name has been updated.', array('%name' => $values['name']))); watchdog('signup_status', 'Status code %name has been updated.', array('%name' => $values['name'])); }