From 0db7df6c144d4061059a35d68d428e14c07d7ac4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 27 May 2021 16:29:18 +0200 Subject: [PATCH] Add keyup event listener on hour/minute inputs - To set the date (and trigger the onChange event) when the user is typing through its keyboard --- .../admin/order_cycles/order_cycles.js.erb.coffee | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/admin/order_cycles/order_cycles.js.erb.coffee b/app/assets/javascripts/admin/order_cycles/order_cycles.js.erb.coffee index 71ab6b9b18..9241517262 100644 --- a/app/assets/javascripts/admin/order_cycles/order_cycles.js.erb.coffee +++ b/app/assets/javascripts/admin/order_cycles/order_cycles.js.erb.coffee @@ -3,12 +3,18 @@ angular.module('admin.orderCycles', ['ngTagsInput', 'admin.indexUtils', 'admin.e require: "ngModel" link: (scope, element, attrs, ngModel) -> $timeout -> - flatpickr(element, Object.assign({}, + fp = flatpickr(element, Object.assign({}, window.FLATPICKR_DATETIME_DEFAULT, { onOpen: (selectedDates, dateStr, instance) -> instance.setDate(ngModel.$modelValue) instance.input.dispatchEvent(new Event('focus', { bubbles: true })); })); + fp.minuteElement.addEventListener "keyup", (e) -> + if !isNaN(event.target.value) + fp.setDate(fp.selectedDates[0].setMinutes(e.target.value), true) + fp.hourElement.addEventListener "keyup", (e) -> + if !isNaN(event.target.value) + fp.setDate(fp.selectedDates[0].setHours(e.target.value), true) .directive 'ofnOnChange', -> (scope, element, attrs) ->