Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / modules / system / tests / modules / ajax_forms_test / ajax_forms_test.module
1 <?php
2
3 /**
4  * @file
5  * Simpletest mock module for Ajax forms testing.
6  */
7
8 use Drupal\Core\Ajax\AddCssCommand;
9 use Drupal\Core\Ajax\AfterCommand;
10 use Drupal\Core\Ajax\AjaxResponse;
11 use Drupal\Core\Ajax\AlertCommand;
12 use Drupal\Core\Ajax\AppendCommand;
13 use Drupal\Core\Ajax\BeforeCommand;
14 use Drupal\Core\Ajax\ChangedCommand;
15 use Drupal\Core\Ajax\CssCommand;
16 use Drupal\Core\Ajax\DataCommand;
17 use Drupal\Core\Ajax\HtmlCommand;
18 use Drupal\Core\Ajax\InsertCommand;
19 use Drupal\Core\Ajax\InvokeCommand;
20 use Drupal\Core\Ajax\PrependCommand;
21 use Drupal\Core\Ajax\RemoveCommand;
22 use Drupal\Core\Ajax\RestripeCommand;
23 use Drupal\Core\Ajax\SettingsCommand;
24 use Drupal\Core\Form\FormStateInterface;
25
26 /**
27  * Ajax form callback: Selects 'after'.
28  */
29 function ajax_forms_test_advanced_commands_after_callback($form, FormStateInterface $form_state) {
30   $selector = '#after_div';
31
32   $response = new AjaxResponse();
33   $response->addCommand(new AfterCommand($selector, "This will be placed after"));
34   return $response;
35 }
36
37 /**
38  * Ajax form callback: Selects 'alert'.
39  */
40 function ajax_forms_test_advanced_commands_alert_callback($form, FormStateInterface $form_state) {
41   $response = new AjaxResponse();
42   $response->addCommand(new AlertCommand('Alert'));
43   return $response;
44 }
45
46 /**
47  * Ajax form callback: Selects 'append'.
48  */
49 function ajax_forms_test_advanced_commands_append_callback($form, FormStateInterface $form_state) {
50   $selector = '#append_div';
51   $response = new AjaxResponse();
52   $response->addCommand(new AppendCommand($selector, "Appended text"));
53   return $response;
54 }
55
56 /**
57  * Ajax form callback: Selects 'before'.
58  */
59 function ajax_forms_test_advanced_commands_before_callback($form, FormStateInterface $form_state) {
60   $selector = '#before_div';
61   $response = new AjaxResponse();
62   $response->addCommand(new BeforeCommand($selector, "Before text"));
63   return $response;
64 }
65
66 /**
67  * Ajax form callback: Selects 'changed'.
68  */
69 function ajax_forms_test_advanced_commands_changed_callback($form, FormStateInterface $form_state) {
70   $response = new AjaxResponse();
71   $response->addCommand(new ChangedCommand('#changed_div'));
72   return $response;
73 }
74
75 /**
76  * Ajax form callback: Selects 'changed' with asterisk marking inner div.
77  */
78 function ajax_forms_test_advanced_commands_changed_asterisk_callback($form, FormStateInterface $form_state) {
79   $response = new AjaxResponse();
80   $response->addCommand(new ChangedCommand('#changed_div', '#changed_div_mark_this'));
81   return $response;
82 }
83
84 /**
85  * Ajax form callback: Selects 'css'.
86  */
87 function ajax_forms_test_advanced_commands_css_callback($form, FormStateInterface $form_state) {
88   $selector = '#css_div';
89   $color = 'blue';
90
91   $response = new AjaxResponse();
92   $response->addCommand(new CssCommand($selector, ['background-color' => $color]));
93   return $response;
94 }
95
96 /**
97  * Ajax form callback: Selects 'data'.
98  */
99 function ajax_forms_test_advanced_commands_data_callback($form, FormStateInterface $form_state) {
100   $selector = '#data_div';
101   $response = new AjaxResponse();
102   $response->addCommand(new DataCommand($selector, 'testkey', 'testvalue'));
103   return $response;
104 }
105
106 /**
107  * Ajax form callback: Selects 'invoke'.
108  */
109 function ajax_forms_test_advanced_commands_invoke_callback($form, FormStateInterface $form_state) {
110   $response = new AjaxResponse();
111   $response->addCommand(new InvokeCommand('#invoke_div', 'addClass', ['error']));
112   return $response;
113 }
114
115 /**
116  * Ajax form callback: Selects 'html'.
117  */
118 function ajax_forms_test_advanced_commands_html_callback($form, FormStateInterface $form_state) {
119   $response = new AjaxResponse();
120   $response->addCommand(new HtmlCommand('#html_div', 'replacement text'));
121   return $response;
122 }
123
124 /**
125  * Ajax form callback: Selects 'insert'.
126  */
127 function ajax_forms_test_advanced_commands_insert_callback($form, FormStateInterface $form_state) {
128   $response = new AjaxResponse();
129   $response->addCommand(new InsertCommand('#insert_div', 'insert replacement text'));
130   return $response;
131 }
132
133 /**
134  * Ajax form callback: Selects 'prepend'.
135  */
136 function ajax_forms_test_advanced_commands_prepend_callback($form, FormStateInterface $form_state) {
137   $response = new AjaxResponse();
138   $response->addCommand(new PrependCommand('#prepend_div', "prepended text"));
139   return $response;
140 }
141
142 /**
143  * Ajax form callback: Selects 'remove'.
144  */
145 function ajax_forms_test_advanced_commands_remove_callback($form, FormStateInterface $form_state) {
146   $response = new AjaxResponse();
147   $response->addCommand(new RemoveCommand('#remove_text'));
148   return $response;
149 }
150
151 /**
152  * Ajax form callback: Selects 'restripe'.
153  */
154 function ajax_forms_test_advanced_commands_restripe_callback($form, FormStateInterface $form_state) {
155   $response = new AjaxResponse();
156   $response->addCommand(new RestripeCommand('#restripe_table'));
157   return $response;
158 }
159
160 /**
161  * Ajax form callback: Selects 'settings'.
162  */
163 function ajax_forms_test_advanced_commands_settings_callback($form, FormStateInterface $form_state) {
164   $setting['ajax_forms_test']['foo'] = 42;
165   $response = new AjaxResponse();
166   $response->addCommand(new SettingsCommand($setting));
167   return $response;
168 }
169
170 /**
171  * Ajax callback for 'add_css'.
172  */
173 function ajax_forms_test_advanced_commands_add_css_callback($form, FormStateInterface $form_state) {
174   $response = new AjaxResponse();
175   $response->addCommand(new AddCssCommand('my/file.css'));
176   return $response;
177 }
178
179 /**
180  * Ajax form callback: Selects the 'drivertext' element of the validation form.
181  */
182 function ajax_forms_test_validation_form_callback($form, FormStateInterface $form_state) {
183   \Drupal::messenger()->addStatus("ajax_forms_test_validation_form_callback invoked");
184   \Drupal::messenger()->addStatus(t("Callback: drivertext=%drivertext, spare_required_field=%spare_required_field", ['%drivertext' => $form_state->getValue('drivertext'), '%spare_required_field' => $form_state->getValue('spare_required_field')]));
185   return ['#markup' => '<div id="message_area">ajax_forms_test_validation_form_callback at ' . date('c') . '</div>'];
186 }
187
188 /**
189  * Ajax form callback: Selects the 'drivernumber' element of the validation form.
190  */
191 function ajax_forms_test_validation_number_form_callback($form, FormStateInterface $form_state) {
192   \Drupal::messenger()->addStatus("ajax_forms_test_validation_number_form_callback invoked");
193   \Drupal::messenger()->addStatus(t("Callback: drivernumber=%drivernumber, spare_required_field=%spare_required_field", ['%drivernumber' => $form_state->getValue('drivernumber'), '%spare_required_field' => $form_state->getValue('spare_required_field')]));
194   return ['#markup' => '<div id="message_area_number">ajax_forms_test_validation_number_form_callback at ' . date('c') . '</div>'];
195 }
196
197 /**
198  * AJAX form callback: Selects for the ajax_forms_test_lazy_load_form() form.
199  */
200 function ajax_forms_test_lazy_load_form_ajax($form, FormStateInterface $form_state) {
201   $build = [
202     '#markup' => 'new content',
203   ];
204
205   if ($form_state->getValue('add_files')) {
206     $build['#attached']['library'][] = 'system/admin';
207     $build['#attached']['library'][] = 'system/drupal.system';
208     $build['#attached']['drupalSettings']['ajax_forms_test_lazy_load_form_submit'] = 'executed';
209   }
210
211   return $build;
212 }