[IMP] web_widget_numeric_step: Add auto_select option

pull/1886/head
Alexandre D. Díaz 2021-03-31 13:30:57 +02:00
parent 7a5e8201d4
commit 29dee0123a
4 changed files with 39 additions and 1 deletions

View File

@ -55,6 +55,14 @@ Example for an 0.25 step, min to -1 and max to 10 :
<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.

View File

@ -15,6 +15,14 @@ Example for an 0.25 step, min to -1 and max to 10 :
<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.

View File

@ -398,6 +398,14 @@ Iteration step by default is 1.</p>
<pre class="code xml literal-block">
<span class="nt">&lt;field</span> <span class="na">name=</span><span class="s">&quot;sale_delay&quot;</span> <span class="na">widget=</span><span class="s">&quot;numeric_step&quot;</span> <span class="na">options=</span><span class="s">&quot;{'step': 0.25, 'min': -1, 'max': 10}&quot;</span> <span class="nt">/&gt;</span> days
</pre>
<p><strong>Available Options</strong></p>
<ul class="simple">
<li>step &gt; Amount to increase/decrease (default: 1.0)</li>
<li>min &gt; Min. value allowed (default: no limit)</li>
<li>max &gt; Max. value allowed (default: no limit)</li>
<li>auto_select &gt; Select the content when the element get focus (default: False)</li>
<li>placeholder &gt; Define the placeholder text (default: None)</li>
</ul>
<p><strong>Examples</strong></p>
<p>Iteration with 0.25 step, min to -1 and max to 10.</p>
<p>Start to increment with button, continue incrementing with scrolling mouse.</p>

View File

@ -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