array( '#type' => 'vertical_tabs', 'islandora_general' => array( '#type' => 'fieldset', '#title' => t('General Configuration'), 'wrapper' => array( '#prefix' => '
', '#suffix' => '
', '#type' => 'markup', 'islandora_base_url' => array( '#type' => 'textfield', '#title' => t('Fedora base URL'), '#default_value' => variable_get('islandora_base_url', 'http://localhost:8080/fedora'), '#description' => t('The URL to use for REST connections
!confirmation_message', array( '!confirmation_message' => $confirmation_message)), '#required' => TRUE, '#ajax' => array( 'callback' => 'islandora_update_url_div', 'wrapper' => 'islandora-url', 'effect' => 'fade', 'event' => 'blur', 'progress' => array('type' => 'throbber'), ), ), ), 'islandora_repository_pid' => array( '#type' => 'textfield', '#title' => t('Root Collection PID'), '#default_value' => variable_get('islandora_repository_pid', 'islandora:root'), '#description' => t('The PID of the Root Collection Object'), '#required' => TRUE, ), 'islandora_use_datastream_cache_headers' => array( '#type' => 'checkbox', '#title' => t('Generate/parse datastream HTTP cache headers'), '#description' => t('HTTP caching can reduce network traffic, by allowing clients to used cached copies.'), '#default_value' => variable_get('islandora_use_datastream_cache_headers', TRUE), ), 'islandora_defer_derivatives_on_ingest' => array( '#type' => 'checkbox', '#title' => t('Defer derivative generation during ingest'), '#description' => t('Prevent derivatives from running during ingest, useful if derivatives are to be created by an external service.'), '#default_value' => variable_get('islandora_defer_derivatives_on_ingest', FALSE), ), ), 'islandora_namespace' => array( '#type' => 'fieldset', '#title' => t('Namespaces'), 'islandora_namespace_restriction_enforced' => array( '#type' => 'checkbox', '#title' => t('Enforce namespace restrictions'), '#description' => t("Allow administrator to restrict user's access to the PID namepaces listed below"), '#default_value' => $restrict_namespaces, ), 'islandora_pids_allowed' => array( '#type' => 'textarea', '#title' => t('PID namespaces allowed in this Drupal install'), '#description' => t('A list of PID namespaces, separated by spaces, that users are permitted to access from this Drupal installation.
This could be more than a simple namespace, e.g. demo:mydemos.
The namespace islandora: is reserved, and is always allowed.'), '#default_value' => variable_get('islandora_pids_allowed', 'default: demo: changeme: ilives: islandora-book: books: newspapers: '), '#states' => array( 'invisible' => array( ':input[name="islandora_namespace_restriction_enforced"]' => array('checked' => FALSE), ), ), ), ), 'islandora_ds_replace_exclude' => array( '#type' => 'fieldset', '#title' => t('Excluded DSID'), 'islandora_ds_replace_exclude_enforced' => array( '#type' => 'textfield', '#title' => t('Enforce DSID restrictions'), '#description' => t("A comma seperated list, allowing administrator to restrict user's access to replace a versionable datastreams latest version"), '#default_value' => variable_get('islandora_ds_replace_exclude_enforced', 'RELS-EXT,RELS-INT'), ), ), ), ); return system_settings_form($form); } /** * Gets a message which describes if the repository is accessible. * * Also describes if the user is considered an authenticated user by the * repository. * * @param string $url * The url to the Fedora Repository. * * @return string * A message describing the accessibility of the repository at the given url. */ function islandora_admin_settings_form_repository_access_message($url) { $info = $dc = FALSE; $connection = islandora_get_tuque_connection(NULL, $url); if ($connection) { try { $info = $connection->api->a->describeRepository(); // If we are able to successfully call API-M::getDatastream, assume we are // an authenticated user, as API-M is usally locked down. $dc = $connection->api->m->getDatastream('fedora-system:ContentModel-3.0', 'DC'); } catch (RepositoryException $e) { // Ignore, we only testing to see what is accessible. } } if ($info && $dc) { $confirmation_message = theme_image(array('path' => 'misc/watchdog-ok.png', 'attributes' => array())); $confirmation_message .= t('Successfully connected to Fedora Server (Version !version).', array( '!version' => $info['repositoryVersion'])); } elseif ($info) { $confirmation_message = theme_image(array('path' => 'misc/watchdog-warning.png', 'attributes' => array())); $confirmation_message .= t('Unable to authenticate when connecting to to Fedora Server (Version !version). Please configure the !filter.', array( '!version' => $info['repositoryVersion'], '!filter' => 'Drupal Filter')); } else { $confirmation_message = theme_image(array('path' => 'misc/watchdog-error.png', 'attributes' => array())); $confirmation_message .= t('Unable to connect to Fedora server at !islandora_url', array( '!islandora_url' => $url)); } return $confirmation_message; } /** * Get the element to render for the AJAX event that triggered this callback. * * @param array $form * The Drupal form definition. * @param array $form_state * The Drupal form state. * * @return array * The form element to render. */ function islandora_update_url_div(array $form, array $form_state) { return $form['islandora_tabs']['islandora_general']['wrapper']; }