l(t('Tuque Fedora API'), 'http://github.com/islandora/tuque'))); drupal_set_message(check_plain($message)); return; } $form = array(); if(isset($form_state['values']['islandora_base_url'])) { $url = $form_state['values']['islandora_base_url']; } else { $url = variable_get('islandora_base_url', 'http://localhost:8080/fedora'); } module_load_include('inc', 'islandora', 'RestConnection'); $connection = new RestConnection(NULL, $url); try { $info = $connection->api->a->describeRepository(); $connected = TRUE; } catch (RepositoryException $e) { $connected = FALSE; } if($connected) { $confirmation_message = '' . t('Successfully connected to Fedora Server (Version !version).', array('!version' => $info['repositoryVersion'])); } else { $confirmation_message = ' ' . t('Unable to connect to Fedora server at !islandora_url', array('!islandora_url' => $url)); } $form['islandora_tabs'] = array( '#type' => 'vertical_tabs', ); $form['islandora_tabs']['islandora_general'] = array( '#type' => 'fieldset', '#title' => t('General Configuarion'), ); // ajax wrapper for url checking $form['islandora_tabs']['islandora_general']['wrapper'] = array( '#prefix' => '
', '#suffix' => '
', '#type' => 'markup', ); $form['islandora_tabs']['islandora_general']['wrapper']['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), '#required' => TRUE, '#ajax' => array( 'callback' => 'islandora_update_url_div', 'wrapper' => 'islandora-url', 'effect' => 'fade', 'event' => 'blur', 'progress' => array('type' => 'throbber'), ), ); $form['islandora_tabs']['islandora_namespace'] = array( '#type' => 'fieldset', '#title' => t('Namespaces'), ); $form['islandora_tabs']['islandora_general']['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, ); $form['islandora_tabs']['islandora_namespace']['islandora_namespace_restriction_enforced'] = array( '#weight' => -1, '#type' => 'checkbox', '#title' => t('Enforce namespace restrictions'), '#description' => t('Allow administrator to restrict user\'s access to the PID namepaces listed below'), '#default_value' => variable_get('islandora_namespace_restriction_enforced', FALSE), ); $form['islandora_tabs']['islandora_namespace']['islandora_pids_allowed'] = array( '#type' => 'textfield', '#title' => t('PID namespaces allowed in this Drupal install'), '#default_value' => variable_get('islandora_pids_allowed', 'default: demo: changeme: ilives: islandora-book: books: newspapers: '), '#description' => t('A space separated list of PID namespaces that users are permitted to access from this Drupal installation.
This could be more than a simple namespace ie demo:mydemos.
islandora: is reserved and is always allowed.'), '#weight' => 0, ); return system_settings_form($form); } /** * Checks url validity and refreshes requestHandler dropdown list */ function islandora_update_url_div($form, $form_state) { unset($form_state['submit_handlers']); $form_state['rebuild'] = TRUE; return $form['islandora_tabs']['islandora_general']['wrapper']; }