diff --git a/config/schema/regcode.schema.yml b/config/schema/regcode.schema.yml index af0558d8e199a85f99603cb7d9d2407d0c2eecdc..cea6462c42fb510d0957036a5002e3e32e1535ed 100644 --- a/config/schema/regcode.schema.yml +++ b/config/schema/regcode.schema.yml @@ -2,6 +2,12 @@ regcode.settings: type: config_object label: Settings mapping: + regcode_field_title: + type: label + label: 'Field label' + regcode_field_description: + type: text + label: 'Field description' regcode_optional: type: boolean label: 'Make registration code optional' @@ -11,9 +17,3 @@ regcode.settings: regcode_generate_case: type: boolean label: 'Convert generated codes to uppercase' - regcode_field_title: - type: label - label: 'Field label' - regcode_field_description: - type: text - label: 'Field description' diff --git a/src/Form/RegcodeAdminCreateForm.php b/src/Form/RegcodeAdminCreateForm.php index b3f8a18914d501d13f66327ab4423d4cb8c770ea..42fa182f9918eeceb082b50d970fe11e2be30d64 100644 --- a/src/Form/RegcodeAdminCreateForm.php +++ b/src/Form/RegcodeAdminCreateForm.php @@ -69,17 +69,19 @@ class RegcodeAdminCreateForm extends FormBase { ]; $form['regcode_create']['regcode_create_maxuses'] = [ - '#type' => 'textfield', + '#type' => 'number', '#title' => $this->t('Maximum uses'), '#description' => $this->t('How many times this code can be used to register (enter 0 for unlimited).'), + '#min' => 0, '#size' => 10, '#default_value' => 1, '#required' => TRUE, ]; $form['regcode_create']['regcode_create_length'] = [ - '#type' => 'textfield', + '#type' => 'number', '#title' => $this->t('Code size'), + '#min' => 1, '#size' => 10, '#default_value' => 12, ]; @@ -134,8 +136,9 @@ class RegcodeAdminCreateForm extends FormBase { ]; $form['regcode_create_bulk']['regcode_create_number'] = [ - '#type' => 'textfield', + '#type' => 'number', '#title' => $this->t('Number of codes to generate'), + '#min' => 1, '#size' => 10, '#default_value' => 1, ]; @@ -149,12 +152,20 @@ class RegcodeAdminCreateForm extends FormBase { } /** - * {@inheritdoc} + * An #element_validate callback to ensure a blank date validates. */ - public function validateForm(array &$form, FormStateInterface $form_state) { - if (!is_numeric($form_state->getValue(['regcode_create_maxuses'])) || $form_state->getValue(['regcode_create_maxuses']) < 0) { - $form_state->setErrorByName('regcode_create_maxuses', $this->t('Invalid maxuses, specify a positive integer or enter "0" for unlimited')); + public function validateDate(array &$element, FormStateInterface $form_state) { + if (isset($element['#value']) && !empty($element['#value'])) { + $date = strtotime($element['#value']); + $day = date('d', $date); + $month = date('m', $date); + $year = date('Y', $date); + if (!checkdate($month, $day, $year)) { + $form_state->setError($element, $this->t('The specified date is invalid.')); + } } + + return $element; } /** @@ -188,7 +199,7 @@ class RegcodeAdminCreateForm extends FormBase { // Generate a code. if (empty($code->code) || $form_state->getValue(['regcode_create_number']) > 1) { - $gen = $this->registrationCode->generate($form_state->getValue(['regcode_create_length']), $form_state->getValue(['regcode_create_format']), $form_state->getValue(['regcode_create_case'])); + $gen = $this->registrationCode->generate((int) $form_state->getValue(['regcode_create_length']), $form_state->getValue(['regcode_create_format']), (bool) $form_state->getValue(['regcode_create_case'])); $code->code .= $gen; } @@ -206,21 +217,4 @@ class RegcodeAdminCreateForm extends FormBase { } } - /** - * Ensures a blank date validates. - */ - public function validateDate(array &$element, FormStateInterface $form_state) { - if (isset($element['#value']) && !empty($element['#value'])) { - $date = strtotime($element['#value']); - $day = date('d', $date); - $month = date('m', $date); - $year = date('Y', $date); - if (!checkdate($month, $day, $year)) { - $form_state->setError($element, $this->t('The specified date is invalid.')); - } - } - - return $element; - } - }