From 6b229129f172564dd9e5cd7f2c4843fc4c2fd09d Mon Sep 17 00:00:00 2001 From: willtp87 Date: Thu, 3 Dec 2015 11:42:45 -0400 Subject: [PATCH] Better validation for semaphores. --- includes/admin.form.inc | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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. *