Commit 91ff428e authored by Tomáš Peterka's avatar Tomáš Peterka Committed by Tomáš Peterka

[renderjs_ui] Solve blurring/emptying of the panel search field in clearer way

parent 02b75940
...@@ -322,38 +322,36 @@ ...@@ -322,38 +322,36 @@
.onEvent('submit', function (event) { .onEvent('submit', function (event) {
var gadget = this, var gadget = this,
search_gadget,
redirect_options = { redirect_options = {
page: "search" page: "search"
}; };
return gadget.getDeclaredGadget("erp5_searchfield") return gadget
.push(function (search_gadget) { .getDeclaredGadget("erp5_searchfield")
.push(function (declared_gadget) {
search_gadget = declared_gadget;
return search_gadget.getContent(); return search_gadget.getContent();
}) })
.push(function (data) { .push(function (data) {
if (data.search) { if (data.search) {
redirect_options.extended_search = data.search; redirect_options.extended_search = data.search;
} }
// don't redirect yet even when we have all necessary arguments // let the search gadget know its current state (value and focus)
return gadget.getDeclaredGadget("erp5_searchfield"); // in order to be able to zero it out in the next Promise
// input gadget's state does not reflect immediate reality
// so we need to manage its state from the parent
return search_gadget.render({
extended_search: data.search,
focus: true
});
}) })
.push(function (search_gadget) { .push(function () {
// we want the search field in side panel to be empty and blured // we want the search field in side panel to be empty and blured
// but the state of the search gadget is still empty and blurred return search_gadget.render({
// because the search gadget does not catch onSubmit extended_search: '',
// thus we need to modify its state with the submitted values focus: false // we don't want focus on the empty field for sure
// and then modify it back to nothing so the "nothing" gets rendered });
return new RSVP.Queue()
.push(function () {
return search_gadget.render({
extended_search: redirect_options.extended_search,
});
})
.push(function () {
return search_gadget.render({
extended_search: ''
});
});
}) })
.push(function () { .push(function () {
return gadget.redirect({command: 'display', options: redirect_options}); return gadget.redirect({command: 'display', options: redirect_options});
......
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>960.63261.10188.49271</string> </value> <value> <string>961.1708.1551.12032</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1501172620.25</float> <float>1501231473.84</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
var gadget = this; var gadget = this;
return gadget.getDeclaredGadget('input') return gadget.getDeclaredGadget('input')
.push(function (input_gadget) { .push(function (input_gadget) {
var focus = gadget.state.focus || false; var focus = gadget.state.focus; // undefined focus is fine as well
if (gadget.state.focus === undefined && !gadget.state.extended_search) { if (gadget.state.focus === undefined && !gadget.state.extended_search) {
focus = true; focus = true;
......
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>960.63097.14876.50483</string> </value> <value> <string>961.1709.1577.19712</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1501172560.38</float> <float>1501231535.25</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -11,7 +11,8 @@ ...@@ -11,7 +11,8 @@
title: '', title: '',
type: 'text', type: 'text',
required: false, required: false,
trim: false trim: false,
focus: undefined
}) })
.declareMethod('render', function (options) { .declareMethod('render', function (options) {
...@@ -75,6 +76,11 @@ ...@@ -75,6 +76,11 @@
textarea.autofocus = true; textarea.autofocus = true;
textarea.focus(); textarea.focus();
} }
if (this.state.focus === false) {
textarea.autofocus = false;
textarea.blur();
}
}) })
.declareService(function () { .declareService(function () {
......
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>956.58742.58866.48708</string> </value> <value> <string>961.1644.62757.27801</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1490622626.22</float> <float>1501232763.54</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