Commit 489d20bc authored by Romain Courteaud's avatar Romain Courteaud

erp5_web_renderjs_ui: reduce number of not needed dom modification in html5 input

parent 14a1904e
...@@ -44,11 +44,28 @@ ...@@ -44,11 +44,28 @@
.onStateChange(function onStateChange(modification_dict) { .onStateChange(function onStateChange(modification_dict) {
var textarea = this.element.querySelector('input'), var textarea = this.element.querySelector('input'),
tmp; // general use short-scope variable tmp; // general use short-scope variable
if (modification_dict.hasOwnProperty('value') ||
modification_dict.hasOwnProperty('checked') ||
modification_dict.hasOwnProperty('editable') ||
modification_dict.hasOwnProperty('required') ||
modification_dict.hasOwnProperty('id') ||
modification_dict.hasOwnProperty('name') ||
modification_dict.hasOwnProperty('type') ||
modification_dict.hasOwnProperty('title') ||
modification_dict.hasOwnProperty('focus') ||
modification_dict.hasOwnProperty('step') ||
modification_dict.hasOwnProperty('trim') ||
modification_dict.hasOwnProperty('multiple') ||
modification_dict.hasOwnProperty('accept') ||
modification_dict.hasOwnProperty('capture') ||
modification_dict.hasOwnProperty('append') ||
modification_dict.hasOwnProperty('prepend')
) {
if (this.state.type === 'checkbox') { if (this.state.type === 'checkbox') {
textarea.checked = this.state.checked; textarea.checked = this.state.checked;
} } else {
if (modification_dict.hasOwnProperty("value")) {
textarea.setAttribute('value', this.state.value); textarea.setAttribute('value', this.state.value);
textarea.value = this.state.value; textarea.value = this.state.value;
} }
...@@ -89,12 +106,6 @@ ...@@ -89,12 +106,6 @@
textarea.readonly = false; textarea.readonly = false;
} }
if (this.state.hidden && !modification_dict.error_text) {
textarea.hidden = true;
} else {
textarea.hidden = false;
}
if (this.state.focus === true) { if (this.state.focus === true) {
textarea.autofocus = true; textarea.autofocus = true;
textarea.focus(); textarea.focus();
...@@ -120,6 +131,15 @@ ...@@ -120,6 +131,15 @@
this.element.insertBefore(tmp, textarea); this.element.insertBefore(tmp, textarea);
tmp = undefined; tmp = undefined;
} }
}
if (modification_dict.hasOwnProperty('error_text') ||
modification_dict.hasOwnProperty('hidden')) {
if (this.state.hidden && !this.state.error_text) {
textarea.hidden = true;
} else {
textarea.hidden = false;
}
if (this.state.error_text && if (this.state.error_text &&
!textarea.classList.contains("is-invalid")) { !textarea.classList.contains("is-invalid")) {
...@@ -128,6 +148,7 @@ ...@@ -128,6 +148,7 @@
textarea.classList.contains("is-invalid")) { textarea.classList.contains("is-invalid")) {
textarea.classList.remove("is-invalid"); textarea.classList.remove("is-invalid");
} }
}
}) })
...@@ -240,7 +261,6 @@ ...@@ -240,7 +261,6 @@
}, {mutex: 'changestate'}) }, {mutex: 'changestate'})
.declareJob('deferErrorText', function deferErrorText(error_text) { .declareJob('deferErrorText', function deferErrorText(error_text) {
var input = this.element.querySelector("input");
return this.changeState({ return this.changeState({
error_text: error_text error_text: error_text
}); });
......
...@@ -234,7 +234,7 @@ ...@@ -234,7 +234,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>990.27297.58624.60416</string> </value> <value> <string>990.28219.58167.35225</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1614639525.14</float> <float>1614695141.57</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment