diff --git a/includes/admin.form.inc b/includes/admin.form.inc index c233be2c..42b197ec 100644 --- a/includes/admin.form.inc +++ b/includes/admin.form.inc @@ -72,7 +72,6 @@ function islandora_repository_admin(array $form, array &$form_state) { '#title' => t('Time to Claim Objects for'), '#default_value' => variable_get('islandora_semaphore_period', 600), '#description' => t('Time in seconds to claim objects for modification.'), - '#required' => TRUE, '#states' => array( 'invisible' => array( ':input[name="islandora_use_object_semaphores"]' => array('checked' => FALSE), @@ -141,6 +140,21 @@ function islandora_repository_admin(array $form, array &$form_state) { return system_settings_form($form); } +/** + * Validate the admin form. + */ +function islandora_repository_admin_validate($form, &$form_state) { + // Only validate semaphore period if semaphores are enabled. + if ($form_state['values']['islandora_use_object_semaphores']) { + if ($form_state['values']['islandora_semaphore_period']) { + element_validate_integer_positive($form['islandora_tabs']['islandora_general']['islandora_semaphore_period'], $form_state); + } + else { + form_set_error('islandora_semaphore_period', t('Time to Claim Objects for must not be empty if Make Processes Claim Objects for Modification is checked.')); + } + } +} + /** * Gets a message which describes if the repository is accessible. *