# HG changeset patch # User Edouard Tisserant # Date 1598515175 -7200 # Node ID ed43facc7137629fe79e2082fd527784860f8ed6 # Parent de4503de2f8c6997e7ce8326b0e77667d740e943 SVGHMI: Fix keypad : non-number input was always considered invalid because of missing type checking. diff -r de4503de2f8c -r ed43facc7137 svghmi/gen_index_xhtml.xslt --- a/svghmi/gen_index_xhtml.xslt Wed Aug 26 14:27:54 2020 +0200 +++ b/svghmi/gen_index_xhtml.xslt Thu Aug 27 09:59:35 2020 +0200 @@ -1510,8 +1510,6 @@ </xsl:text> <xsl:text> if (this.active_style && this.inactive_style) { </xsl:text> - <xsl:text> console.log("pressedi...") -</xsl:text> <xsl:text> this.active_elt.setAttribute("style", this.active_style); </xsl:text> <xsl:text> this.inactive_elt.setAttribute("style", "display:none"); @@ -1520,8 +1518,6 @@ </xsl:text> <xsl:text> this.apply_hmi_value(0, 1); </xsl:text> - <xsl:text> console.log("pressed") -</xsl:text> <xsl:text> // TODO inhibit all mouse/touch events except mouse up (in other word grab cursor) </xsl:text> <xsl:text> } @@ -1532,8 +1528,6 @@ </xsl:text> <xsl:text> if (this.active_style && this.inactive_style) { </xsl:text> - <xsl:text> console.log("unpressedi...") -</xsl:text> <xsl:text> this.active_elt.setAttribute("style", "display:none"); </xsl:text> <xsl:text> this.inactive_elt.setAttribute("style", this.inactive_style); @@ -1542,8 +1536,6 @@ </xsl:text> <xsl:text> this.apply_hmi_value(0, 0); </xsl:text> - <xsl:text> console.log("unpressed") -</xsl:text> <xsl:text> // TODO release inhibited events </xsl:text> <xsl:text> } @@ -3403,8 +3395,6 @@ </xsl:text> <xsl:text> .then(res => res.json()) </xsl:text> - <xsl:text> .then(function(res){console.log(res);return res;}) -</xsl:text> <xsl:text> .then(this.spread_json_data.bind(this)); </xsl:text> <xsl:text> @@ -4115,13 +4105,15 @@ </xsl:text> <xsl:text> let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr; </xsl:text> - <xsl:text> if(isNaN(coercedval)){ + <xsl:text> if(typeof coercedval == 'number' && isNaN(coercedval)){ +</xsl:text> + <xsl:text> // revert to initial so it explicitely shows input was ignored </xsl:text> <xsl:text> this.editstr = String(this.initial); </xsl:text> <xsl:text> this.update(); </xsl:text> - <xsl:text> } else { // revert to initial so it explicitely shows input was ignored + <xsl:text> } else { </xsl:text> <xsl:text> let callback_obj = this.result_callback_obj; </xsl:text> diff -r de4503de2f8c -r ed43facc7137 svghmi/widget_keypad.ysl2 --- a/svghmi/widget_keypad.ysl2 Wed Aug 26 14:27:54 2020 +0200 +++ b/svghmi/widget_keypad.ysl2 Thu Aug 27 09:59:35 2020 +0200 @@ -89,10 +89,11 @@ on_Enter_click() { let coercedval = (typeof this.initial) == "number" ? Number(this.editstr) : this.editstr; - if(isNaN(coercedval)){ + if(typeof coercedval == 'number' && isNaN(coercedval)){ + // revert to initial so it explicitely shows input was ignored this.editstr = String(this.initial); this.update(); - } else { // revert to initial so it explicitely shows input was ignored + } else { let callback_obj = this.result_callback_obj; end_modal.call(this); callback_obj.edit_callback(coercedval);