From 12c738662105b64cbb1a0e4008184a7b3d85ae9f Mon Sep 17 00:00:00 2001 From: Matthew Wire Date: Fri, 21 Feb 2020 12:22:04 +0000 Subject: [PATCH] Support adding datepicker via settingstrait --- CRM/Admin/Form/SettingTrait.php | 4 ++-- CRM/Core/Form.php | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CRM/Admin/Form/SettingTrait.php b/CRM/Admin/Form/SettingTrait.php index f1d0e91893..8339f57ad7 100644 --- a/CRM/Admin/Form/SettingTrait.php +++ b/CRM/Admin/Form/SettingTrait.php @@ -227,7 +227,7 @@ trait CRM_Admin_Form_SettingTrait { $this->addRadio($setting, $props['title'], [1 => ts('Yes'), 0 => ts('No')], CRM_Utils_Array::value('html_attributes', $props), '  '); } elseif ($add === 'add') { - $this->add($props['html_type'], $setting, $props['title'], $options); + $this->add($props['html_type'], $setting, $props['title'], $options, FALSE, $props['html_extra'] ?? NULL); } else { $this->$add($setting, $props['title'], $options); @@ -290,7 +290,7 @@ trait CRM_Admin_Form_SettingTrait { 'advmultiselect' => 'Element', ]; $mapping += array_fill_keys(CRM_Core_Form::$html5Types, ''); - return $mapping[$htmlType]; + return $mapping[$htmlType] ?? ''; } /** diff --git a/CRM/Core/Form.php b/CRM/Core/Form.php index 1ab3ccc876..e6548657b0 100644 --- a/CRM/Core/Form.php +++ b/CRM/Core/Form.php @@ -387,6 +387,14 @@ class CRM_Core_Form extends HTML_QuickForm_Page { } // @see http://wiki.civicrm.org/confluence/display/CRMDOC/crmDatepicker if ($type == 'datepicker') { + // Support minDate/maxDate properties + if (isset($extra['minDate'])) { + $extra['minDate'] = date('Y-m-d', strtotime($extra['minDate'])); + } + if (isset($extra['maxDate'])) { + $extra['maxDate'] = date('Y-m-d', strtotime($extra['maxDate'])); + } + $attributes = ($attributes ? $attributes : []); $attributes['data-crm-datepicker'] = json_encode((array) $extra); if (!empty($attributes['aria-label']) || $label) { -- 2.25.1