TRUE, '#type' => 'textfield', '#size' => 200, '#title' => t('Your ILL Library Symbol'), '#description' => t('Your Relais Library Symbol'), '#default_value' => $config->get('ill_library_symbol'), ]; $form['ill_doi_openurl_pid'] = [ '#required' => TRUE, '#type' => 'textfield', '#size' => 200, '#title' => t('OpenURL PID'), '#description' => t('An identifier to call yourself, for the OpenURL endpoint. To use this service you first need to register for an account here: http://www.crossref.org/requestaccount/'), '#default_value' => $config->get('ill_doi_openurl_pid'), ]; $form['ill_contact_email'] = [ '#required' => TRUE, '#type' => 'textfield', '#size' => 200, '#title' => t('Contact Email'), '#description' => t('The email address we want to show after a user has submitted an ILL request, Roblib uses ill@upei.ca'), '#default_value' => $config->get('ill_contact_email'), ]; $form['ill_contact_phone'] = [ '#required' => TRUE, '#type' => 'textfield', '#size' => 200, '#title' => t('Contact Phone Number'), '#description' => t('The phone number we want to show to the user after a user has submitted an ILL request, Roblib uses 902-566-0445'), '#default_value' => $config->get('ill_contact_phone'), ]; // Evergreen Settings $form['evergreen_fieldset'] = [ '#type' => 'fieldset', '#title' => t('Evergreen ILS Settings'), '#description' => t('Configuration for authenticating users against Evergreen.'), ]; $form['evergreen_fieldset']['evergreen_api_url'] = [ '#type' => 'url', '#title' => t('Evergreen API URL'), '#description' => t('The base URL of your Evergreen server (e.g. https://catalogue.example.com). Used for REST API patron lookups.'), '#default_value' => $config->get('evergreen_api_url'), '#size' => 200, '#required' => TRUE, ]; $form['evergreen_fieldset']['evergreen_username'] = [ '#type' => 'textfield', '#title' => t('Evergreen Staff Username'), '#description' => t('A staff username for authenticating with the Evergreen REST API.'), '#default_value' => $config->get('evergreen_username'), '#size' => 200, '#required' => TRUE, ]; $form['evergreen_fieldset']['evergreen_password'] = [ '#type' => 'password', '#title' => t('Evergreen Staff Password'), '#description' => t('The staff password for the Evergreen REST API. Leave blank to keep the existing value.'), '#size' => 200, ]; // RapidILL settings. $form['rapid_ill_fieldset'] = [ '#type' => 'fieldset', '#title' => t('RapidILL Settings'), '#description' => t('Credentials and configuration for submitting requests via RapidILL.'), ]; $form['rapid_ill_fieldset']['rapid_ill_username'] = [ '#type' => 'textfield', '#title' => t('RapidILL Username'), '#description' => t('Your RapidILL API username.'), '#default_value' => $config->get('rapid_ill_username'), '#size' => 200, ]; $form['rapid_ill_fieldset']['rapid_ill_password'] = [ '#type' => 'password', '#title' => t('RapidILL Password'), '#description' => t('Your RapidILL API password. Leave blank to keep the existing value.'), '#size' => 200, ]; $form['rapid_ill_fieldset']['rapid_ill_code'] = [ '#type' => 'textfield', '#title' => t('RapidILL Rapid Code'), '#description' => t('Your library Rapid code (e.g. YOUR_RAPID_CODE).'), '#default_value' => $config->get('rapid_ill_code'), '#size' => 200, ]; $form['rapid_ill_fieldset']['rapid_ill_branch_name'] = [ '#type' => 'textfield', '#title' => t('RapidILL Branch Name'), '#description' => t('Your library branch name (e.g. Main).'), '#default_value' => $config->get('rapid_ill_branch_name'), '#size' => 200, ]; $form['actions']['submit'] = [ '#type' => 'submit', '#value' => t('Save'), '#button_type' => 'primary', ]; return $form; } /** * {@inheritdoc} */ public function validateForm(array &$form, FormStateInterface $form_state) { } /** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { $config = \Drupal::configFactory()->getEditable('upei_roblib_ill.settings'); $config->set('ill_library_symbol', $form_state->getValue('ill_library_symbol'))->save(); $config->set('ill_doi_openurl_pid', $form_state->getValue('ill_doi_openurl_pid'))->save(); $config->set('ill_contact_email', $form_state->getValue('ill_contact_email'))->save(); $config->set('ill_contact_phone', $form_state->getValue('ill_contact_phone'))->save(); // Evergreen settings. $config->set('evergreen_api_url', rtrim($form_state->getValue('evergreen_api_url'), '/'))->save(); $config->set('evergreen_username', $form_state->getValue('evergreen_username'))->save(); $eg_password = $form_state->getValue('evergreen_password'); if (!empty($eg_password)) { $config->set('evergreen_password', $eg_password)->save(); } // RapidILL settings. $config->set('rapid_ill_username', $form_state->getValue('rapid_ill_username'))->save(); // Only update the password if a new value was entered. $password = $form_state->getValue('rapid_ill_password'); if (!empty($password)) { $config->set('rapid_ill_password', $password)->save(); } $config->set('rapid_ill_code', $form_state->getValue('rapid_ill_code'))->save(); $config->set('rapid_ill_branch_name', $form_state->getValue('rapid_ill_branch_name'))->save(); } }