From 425023f83be238c4acf120d36e7675c8a1a2d48e Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Fri, 5 Jan 2024 16:23:57 +0100 Subject: [PATCH] Ensure datepicker input is cleared (#15338) --- .../datepicker/datepicker.controller.js | 16 ++++++++- .../datepicker/datepicker.html | 36 +++++++------------ 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js index 87a43adbcc..e210e94aa1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js @@ -1,5 +1,10 @@ function dateTimePickerController($scope, angularHelper, dateHelper, validationMessageService) { + const vm = this; + + vm.clearDatePicker = clearDatePicker; + vm.inputChanged = inputChanged; + let flatPickr = null; function onInit() { @@ -71,10 +76,19 @@ function dateTimePickerController($scope, angularHelper, dateHelper, validationM }); } + function clearDatePicker(event) { + + event.preventDefault(); + event.stopPropagation(); + + $scope.clearDate(); + } + $scope.clearDate = function () { $scope.hasDatetimePickerValue = false; if ($scope.model) { $scope.model.datetimePickerValue = null; + $scope.model.datetimePickerInputValue = null; $scope.model.value = null; } if ($scope.datePickerForm && $scope.datePickerForm.datepicker) { @@ -92,7 +106,7 @@ function dateTimePickerController($scope, angularHelper, dateHelper, validationM setDatePickerVal(); }; - $scope.inputChanged = function () { + function inputChanged() { if ($scope.model.datetimePickerValue === "" && $scope.hasDatetimePickerValue) { // $scope.hasDatetimePickerValue indicates that we had a value before the input was changed, // but now the input is empty. diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html index de68de960a..8f291b9a06 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html @@ -1,34 +1,29 @@ -
+
+
+ on-change="datePickerChange(dateStr)">
+ ng-readonly="readonly" /> + icon="icon-{{ datePickerConfig.noCalendar ? 'time' : 'calendar' }}"> +
@@ -45,8 +40,7 @@
+ show-validation-on-submit>

{{mandatoryMessage}}

{{datePickerForm.datepicker.errorMsg}} @@ -58,18 +52,14 @@

+ class="muted"> This translates to the following time on the server: - {{serverTime}}
+ {{serverTime}}
- What does this mean? + What does this mean?