From 7c266307d03a15836cabcfe9b0eb422c779aec59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexandre=20D=2E=20D=C3=ADaz?=
Date: Wed, 31 Mar 2021 13:30:57 +0200
Subject: [PATCH] [IMP] web_widget_numeric_step: Add auto_select option
---
web_widget_numeric_step/README.rst | 8 ++++++++
web_widget_numeric_step/readme/USAGE.rst | 8 ++++++++
.../static/description/index.html | 8 ++++++++
.../static/src/js/numeric_step.js | 16 +++++++++++++++-
4 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/web_widget_numeric_step/README.rst b/web_widget_numeric_step/README.rst
index d2985fa99..7f71f7a5b 100644
--- a/web_widget_numeric_step/README.rst
+++ b/web_widget_numeric_step/README.rst
@@ -55,6 +55,14 @@ Example for an 0.25 step, min to -1 and max to 10 :
days
+**Available Options**
+
+- step > Amount to increase/decrease (default: 1.0)
+- min > Min. value allowed (default: no limit)
+- max > Max. value allowed (default: no limit)
+- auto_select > Select the content when the element get focus (default: False)
+- placeholder > Define the placeholder text (default: None)
+
**Examples**
Iteration with 0.25 step, min to -1 and max to 10.
diff --git a/web_widget_numeric_step/readme/USAGE.rst b/web_widget_numeric_step/readme/USAGE.rst
index e272b8022..fabb69723 100644
--- a/web_widget_numeric_step/readme/USAGE.rst
+++ b/web_widget_numeric_step/readme/USAGE.rst
@@ -15,6 +15,14 @@ Example for an 0.25 step, min to -1 and max to 10 :
days
+**Available Options**
+
+- step > Amount to increase/decrease (default: 1.0)
+- min > Min. value allowed (default: no limit)
+- max > Max. value allowed (default: no limit)
+- auto_select > Select the content when the element get focus (default: False)
+- placeholder > Define the placeholder text (default: None)
+
**Examples**
Iteration with 0.25 step, min to -1 and max to 10.
diff --git a/web_widget_numeric_step/static/description/index.html b/web_widget_numeric_step/static/description/index.html
index 335d0525b..323cd92cd 100644
--- a/web_widget_numeric_step/static/description/index.html
+++ b/web_widget_numeric_step/static/description/index.html
@@ -398,6 +398,14 @@ Iteration step by default is 1.
<field name="sale_delay" widget="numeric_step" options="{'step': 0.25, 'min': -1, 'max': 10}" /> days
+Available Options
+
+- step > Amount to increase/decrease (default: 1.0)
+- min > Min. value allowed (default: no limit)
+- max > Max. value allowed (default: no limit)
+- auto_select > Select the content when the element get focus (default: False)
+- placeholder > Define the placeholder text (default: None)
+
Examples
Iteration with 0.25 step, min to -1 and max to 10.
Start to increment with button, continue incrementing with scrolling mouse.
diff --git a/web_widget_numeric_step/static/src/js/numeric_step.js b/web_widget_numeric_step/static/src/js/numeric_step.js
index b2c5037f9..2d8fd8c2c 100644
--- a/web_widget_numeric_step/static/src/js/numeric_step.js
+++ b/web_widget_numeric_step/static/src/js/numeric_step.js
@@ -20,7 +20,8 @@ odoo.define("web_widget_numeric_step.field", function(require) {
"keydown .input_numeric_step": "_onKeyDown",
"change .input_numeric_step": "_onChange",
"input .input_numeric_step": "_onInput",
- "onfocusout .widget_numeric_step": "_onFocusOut",
+ "focusin .input_numeric_step": "_onFocusIn",
+ "focusout .widget_numeric_step": "_onFocusOut",
}),
supportedFieldTypes: ["float", "integer"],
@@ -53,6 +54,7 @@ odoo.define("web_widget_numeric_step.field", function(require) {
step: Number(this.nodeOptions.step) || 1,
min: Number(min_val),
max: Number(max_val),
+ autoSelect: this.nodeOptions.auto_select,
};
this._lazyOnChangeTrigger = _.debounce(
@@ -215,6 +217,18 @@ odoo.define("web_widget_numeric_step.field", function(require) {
}
},
+ /**
+ * Auto select all content when user enters into fields with this
+ * widget.
+ *
+ * @private
+ */
+ _onFocusIn: function() {
+ if (this._config.autoSelect) {
+ this.$input.select();
+ }
+ },
+
/**
* @private
* @param {FocusoutEvent} ev