Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 43 |
| EditorLinkDialog | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
42 | |
0.00% |
0 / 43 |
| getFormId | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| buildForm | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 26 |
|||
| submitForm | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 15 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\editor\Form\EditorLinkDialog. | |
| */ | |
| namespace Drupal\editor\Form; | |
| use Drupal\Core\Form\FormBase; | |
| use Drupal\Core\Form\FormStateInterface; | |
| use Drupal\filter\Entity\FilterFormat; | |
| use Drupal\Core\Ajax\AjaxResponse; | |
| use Drupal\Core\Ajax\HtmlCommand; | |
| use Drupal\editor\Ajax\EditorDialogSave; | |
| use Drupal\Core\Ajax\CloseModalDialogCommand; | |
| /** | |
| * Provides a link dialog for text editors. | |
| */ | |
| class EditorLinkDialog extends FormBase { | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function getFormId() { | |
| return 'editor_link_dialog'; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| * | |
| * @param \Drupal\filter\Entity\FilterFormat $filter_format | |
| * The filter format for which this dialog corresponds. | |
| */ | |
| public function buildForm(array $form, FormStateInterface $form_state, FilterFormat $filter_format = NULL) { | |
| // The default values are set directly from \Drupal::request()->request, | |
| // provided by the editor plugin opening the dialog. | |
| $user_input = $form_state->getUserInput(); | |
| $input = isset($user_input['editor_object']) ? $user_input['editor_object'] : array(); | |
| $form['#tree'] = TRUE; | |
| $form['#attached']['library'][] = 'editor/drupal.editor.dialog'; | |
| $form['#prefix'] = '<div id="editor-link-dialog-form">'; | |
| $form['#suffix'] = '</div>'; | |
| // Everything under the "attributes" key is merged directly into the | |
| // generated link tag's attributes. | |
| $form['attributes']['href'] = array( | |
| '#title' => $this->t('URL'), | |
| '#type' => 'textfield', | |
| '#default_value' => isset($input['href']) ? $input['href'] : '', | |
| '#maxlength' => 2048, | |
| ); | |
| $form['actions'] = array( | |
| '#type' => 'actions', | |
| ); | |
| $form['actions']['save_modal'] = array( | |
| '#type' => 'submit', | |
| '#value' => $this->t('Save'), | |
| // No regular submit-handler. This form only works via JavaScript. | |
| '#submit' => array(), | |
| '#ajax' => array( | |
| 'callback' => '::submitForm', | |
| 'event' => 'click', | |
| ), | |
| ); | |
| return $form; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function submitForm(array &$form, FormStateInterface $form_state) { | |
| $response = new AjaxResponse(); | |
| if ($form_state->getErrors()) { | |
| unset($form['#prefix'], $form['#suffix']); | |
| $form['status_messages'] = [ | |
| '#type' => 'status_messages', | |
| '#weight' => -10, | |
| ]; | |
| $response->addCommand(new HtmlCommand('#editor-link-dialog-form', $form)); | |
| } | |
| else { | |
| $response->addCommand(new EditorDialogSave($form_state->getValues())); | |
| $response->addCommand(new CloseModalDialogCommand()); | |
| } | |
| return $response; | |
| } | |
| } |