From 50e099a050f462be983f2dab9ac18813ccaf0803 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Fri, 28 Apr 2023 15:20:41 -0400 Subject: [PATCH] Afform - Handle decimal number fields --- Civi/Api4/Service/Spec/SpecFormatter.php | 6 ++++-- .../afGuiEditor/elements/afGuiField-menu.html | 17 +++++++++++++++++ ext/afform/core/ang/af/fields/Number.html | 6 +++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Civi/Api4/Service/Spec/SpecFormatter.php b/Civi/Api4/Service/Spec/SpecFormatter.php index 49455b459aee..a415fb403dd8 100644 --- a/Civi/Api4/Service/Spec/SpecFormatter.php +++ b/Civi/Api4/Service/Spec/SpecFormatter.php @@ -287,9 +287,11 @@ public static function setInputTypeAndAttrs(FieldSpec &$fieldSpec, $data, $dataT if ($inputType == 'Date' && !empty($inputAttrs['formatType'])) { self::setLegacyDateFormat($inputAttrs); } - // Number input for integer fields - if ($inputType === 'Text' && $dataTypeName === 'Int') { + // Number input for numeric fields + if ($inputType === 'Text' && in_array($dataTypeName, ['Int', 'Float'], TRUE)) { $inputType = 'Number'; + // Todo: make 'step' configurable for the custom field + $inputAttrs['step'] = $dataTypeName === 'Int' ? 1 : .01; } // Date/time settings from custom fields if ($inputType == 'Date' && !empty($data['custom_group_id'])) { diff --git a/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html b/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html index 2ab4c16dfdcf..61a5a76c1476 100644 --- a/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html +++ b/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html @@ -6,6 +6,23 @@ +
  • +
    + + +
    +
  • diff --git a/ext/afform/core/ang/af/fields/Number.html b/ext/afform/core/ang/af/fields/Number.html index 754b4abedea8..2ce142c9957d 100644 --- a/ext/afform/core/ang/af/fields/Number.html +++ b/ext/afform/core/ang/af/fields/Number.html @@ -1,6 +1,6 @@ - +
    - + - - +