From 67119cd9f63e10dccfba778029ce3d4e0d79b870 Mon Sep 17 00:00:00 2001 From: Michael Bauer <michael-bauer@posteo.de> Date: Fri, 16 Feb 2024 12:12:56 +0100 Subject: [PATCH] Handle change in PositiveSmallIntegerField v-text-field emits 'change' with changed value on focus out. If someone listenes to 'change' on PositiveSmallIntegerField he received a string not an integer. This fixes it. --- .../forms/PositiveSmallIntegerField.vue | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/aleksis/core/frontend/components/generic/forms/PositiveSmallIntegerField.vue b/aleksis/core/frontend/components/generic/forms/PositiveSmallIntegerField.vue index 5deaab572..c28c778ea 100644 --- a/aleksis/core/frontend/components/generic/forms/PositiveSmallIntegerField.vue +++ b/aleksis/core/frontend/components/generic/forms/PositiveSmallIntegerField.vue @@ -12,14 +12,6 @@ export default { name: "PositiveSmallIntegerField", extends: "v-text-field", - methods: { - handleInput(event) { - let num = parseInt(event); - if (!isNaN(num) && num >= 0 && num <= 32767 && num % 1 === 0) { - this.$emit("input", parseInt(event)); - } - }, - }, data() { return { rules: [ @@ -46,7 +38,18 @@ export default { on() { return { ...this.$listeners, - input: this.handleInput, + input: this.inputHandler("input"), + change: this.inputHandler("change"), + }; + }, + }, + methods: { + inputHandler(name) { + return (event) => { + const num = parseInt(event); + if (!isNaN(num) && num >= 0 && num <= 32767 && num % 1 === 0) { + this.$emit(name, num); + } }; }, }, -- GitLab