@@ -69,6 +69,9 @@ public function form(array $form, FormStateInterface $form_state) {
69
69
'#default_value ' => implode ('| ' , $ range ->getRanges ()),
70
70
'#description ' => $ this ->t ("IP range to be used. Please list in CIDR format, and separate multiple ranges with a '|'. " ),
71
71
'#required ' => TRUE ,
72
+ '#element_validate ' => [
73
+ '::validateIpRanges ' ,
74
+ ],
72
75
];
73
76
74
77
$ form ['proxy_url ' ] = [
@@ -82,6 +85,24 @@ public function form(array $form, FormStateInterface $form_state) {
82
85
return $ form ;
83
86
}
84
87
88
+ /**
89
+ * Validates the IP range entered.
90
+ *
91
+ * @param array $element
92
+ * An array representing the element.
93
+ * @param Drupal\Core\Form\FormStateInterface $form_state
94
+ * The Drupal form state.
95
+ */
96
+ public function validateIpRanges (array $ element , FormStateInterface $ form_state ) {
97
+ $ errors = $ this ->ipRanges ->detectIpRangeStringErrors (array_map ('trim ' , explode ('| ' , trim ($ form_state ->getValue ('range ' )))));
98
+ if (!empty ($ errors )) {
99
+ $ form_state ->setError ($ element , $ this ->t ('Problems detected with the %label IP Range. <br/>Errors: %errors ' , [
100
+ '%label ' => $ this ->entity ->label (),
101
+ '%errors ' => implode (", " , $ errors ),
102
+ ]));
103
+ }
104
+ }
105
+
85
106
/**
86
107
* {@inheritdoc}
87
108
*/
@@ -91,22 +112,13 @@ public function save(array $form, FormStateInterface $form_state) {
91
112
$ range ->setProxyUrl ($ form_state ->getValue ('proxy_url ' ));
92
113
$ status = $ range ->save ();
93
114
94
- $ errors = $ this ->ipRanges ->detectIpRangeStringErrors (array_map ('trim ' , explode ('| ' , trim ($ form_state ->getValue ('range ' )))));
95
- if (!$ errors ) {
96
- switch ($ status ) {
97
- case SAVED_NEW :
98
- $ this ->messenger ()->addMessage ($ this ->t ('Created the %label IP Range. ' , ['%label ' => $ range ->label ()]));
99
- break ;
100
-
101
- default :
102
- $ this ->messenger ()->addMessage ($ this ->t ('Saved the %label IP Range. ' , ['%label ' => $ range ->label ()]));
103
- }
104
- }
105
- else {
106
- drupal_set_message ("Problems detected with the {$ range ->label ()} IP Range. " , 'error ' );
107
- foreach ($ errors as $ error ) {
108
- drupal_set_message ("Error: {$ error }. " , 'error ' );
109
- }
115
+ switch ($ status ) {
116
+ case SAVED_NEW :
117
+ $ this ->messenger ()->addMessage ($ this ->t ('Created the %label IP Range. ' , ['%label ' => $ range ->label ()]));
118
+ break ;
119
+
120
+ default :
121
+ $ this ->messenger ()->addMessage ($ this ->t ('Saved the %label IP Range. ' , ['%label ' => $ range ->label ()]));
110
122
}
111
123
$ form_state ->setRedirectUrl ($ range ->toUrl ('collection ' ));
112
124
}
0 commit comments