You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.5 KiB
133 lines
4.5 KiB
<?php |
|
|
|
namespace Drupal\roblib_search\Form; |
|
|
|
use Drupal\Core\Form\FormBase; |
|
use Drupal\Core\Form\FormStateInterface; |
|
|
|
/** |
|
* Settings form for module |
|
* |
|
* @author ppound |
|
*/ |
|
class RoblibSearchEdsSettingsForm extends FormBase { |
|
|
|
/** |
|
* {@inheritdoc} |
|
*/ |
|
public function getFormId() { |
|
return 'roblib_search_eds_settings_form'; |
|
} |
|
|
|
/** |
|
* {@inheritdoc} |
|
*/ |
|
public function buildForm(array $form, FormStateInterface $form_state) { |
|
$config = \Drupal::config('roblib_search_eds.settings'); |
|
$form['eds_rest_url'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS Rest endpoint'), |
|
'#default_value' => $config->get('eds_rest_url'), |
|
'#description' => t('The base EDS URL, for example https://eds-api.ebscohost.com/edsapi/rest'), |
|
'#required' => TRUE, |
|
); |
|
$form['eds_auth_url'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS Auth endpoint'), |
|
'#default_value' => $config->get('eds_auth_url'), |
|
'#description' => t('The EDS Auth endpoint, for example https://eds-api.ebscohost.com/Authservice/rest'), |
|
'#required' => TRUE, |
|
); |
|
|
|
$form['eds_user'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS user'), |
|
'#default_value' => $config->get('eds_user'), |
|
'#description' => t('EDS user, for example username'), |
|
'#required' => TRUE, |
|
); |
|
|
|
$form['eds_pass'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS password'), |
|
'#default_value' => $config->get('eds_pass'), |
|
'#description' => t('EDS password, for example password'), |
|
'#required' => TRUE, |
|
); |
|
|
|
$form['eds_guest'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS Guest access'), |
|
'#default_value' => $config->get('eds_guest'), |
|
'#description' => t('EDS Guest access, y = guest access, n = not a guest'), |
|
'#required' => TRUE, |
|
); |
|
|
|
$form['eds_article_profile'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS Article profile'), |
|
'#default_value' => $config->get('eds_article_profile'), |
|
'#description' => t('EDS profile, for example edsapi'), |
|
'#required' => TRUE, |
|
); |
|
|
|
$form['eds_book_profile'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('EDS Book profile'), |
|
'#default_value' => $config->get('eds_book_profile'), |
|
'#description' => t('EDS Book profile, for example apilite'), |
|
'#required' => TRUE, |
|
); |
|
|
|
$form['eds_num_results'] = array( |
|
'#type' => 'textfield', |
|
'#title' => t('Number of results to return'), |
|
'#default_value' => $config->get('eds_num_results'), |
|
'#description' => t('The number of results to display in the Bento box, usurally 5'), |
|
'#required' => TRUE, |
|
); |
|
$form['eds_article_limiters'] = array( |
|
'#type' => 'textarea', |
|
'#title' => t('The limiters for Article searches'), |
|
'#default_value' => $config->get('eds_article_limiters'), |
|
'#description' => t('Specify the Publication Types to use as limiters for Article searches. Formatted similar to |
|
AND (PT Article OR PT Magazines OR PT News OR PT Academic Journals OR PT Conference Materials)'), |
|
'#required' => TRUE, |
|
); |
|
$form['eds_book_limiters'] = array( |
|
'#type' => 'textarea', |
|
'#title' => t('The limiters for Books and Media searches'), |
|
'#default_value' => $config->get('eds_book_limiters'), |
|
'#description' => t('Specify the Publication Types to use as limiters for Article searches. Formatted similar to |
|
AND (PT Book OR PT Video OR PT Audio'), |
|
'#required' => TRUE, |
|
); |
|
return $form; |
|
} |
|
|
|
/** |
|
* {@inheritdoc} |
|
*/ |
|
public function validateForm(array &$form, FormStateInterface $form_state) { |
|
|
|
} |
|
|
|
/** |
|
* {@inheritdoc} |
|
*/ |
|
public function submitForm(array &$form, FormStateInterface $form_state) { |
|
$config = \Drupal::configFactory()->getEditable('roblib_search_eds.settings'); |
|
$config->set('eds_rest_url', $form_state->getValue('eds_rest_url'))->save(); |
|
$config->set('eds_auth_url', $form_state->getValue('eds_auth_url'))->save(); |
|
$config->set('eds_user', $form_state->getValue('eds_user'))->save(); |
|
$config->set('eds_pass', $form_state->getValue('eds_pass'))->save(); |
|
$config->set('eds_guest', $form_state->getValue('eds_guest'))->save(); |
|
$config->set('eds_article_profile', $form_state->getValue('eds_article_profile'))->save(); |
|
$config->set('eds_book_profile', $form_state->getValue('eds_book_profile'))->save(); |
|
$config->set('eds_num_results', $form_state->getValue('eds_num_results'))->save(); |
|
$config->set('eds_article_limiters', $form_state->getValue('eds_article_limiters'))->save(); |
|
$config->set('eds_book_limiters', $form_state->getValue('eds_book_limiters'))->save(); |
|
|
|
} |
|
|
|
}
|
|
|