From 35fbec53e27888999066688bc2c4756e50825701 Mon Sep 17 00:00:00 2001
From: Romain Courteaud <romain@nexedi.com>
Date: Fri, 17 Nov 2017 14:47:52 +0000
Subject: [PATCH] [erp5_web_renderjs_ui] Search Editor: add an empty search
 parameter by default

---
 .../rjs_gadget_erp5_searcheditor_js.js        | 23 ++++++++++++++++++
 .../rjs_gadget_erp5_searcheditor_js.xml       |  4 ++--
 .../testComplexFilter.zpt                     |  1 -
 .../renderjs_ui_listbox_zuite/testFilter.zpt  | 24 ++++++++++++++++++-
 .../testFilterItemAutoBuild.zpt               |  1 -
 .../testFilterItemDelete.zpt                  |  1 -
 .../testFilterWithPager.zpt                   |  1 -
 .../testFilterWithPreviousNext.zpt            |  1 -
 .../testFilterEditor.zpt                      | 16 ++++---------
 .../testPageFront.zpt                         |  2 --
 10 files changed, 53 insertions(+), 21 deletions(-)

diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js
index ec2740230a..d7100574db 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js
@@ -162,6 +162,21 @@
             for (i = 0; i < query_list.length; i += 1) {
               promise_list.push(createFilterItemTemplate(gadget, "auto", query_list[i]));
             }
+          } else if (gadget.state.search_column_list.length > 0) {
+            // No search query was provided
+            // Add an empty search parameter for the first searchable column
+            promise_list.push(
+              createFilterItemTemplate(
+                gadget,
+                "auto",
+                new SimpleQuery({
+                  key: gadget.state.search_column_list[0][1],
+                  operator: "",
+                  type: "simple",
+                  value: ''
+                })
+              )
+            );
           }
           return RSVP.all(promise_list);
         })
@@ -178,9 +193,17 @@
           }
 
           container.appendChild(div);
+          return gadget.focusOnLastInput();
         });
     })
 
+    .declareJob('focusOnLastInput', function () {
+      var input_list = this.element.querySelectorAll('input');
+      if (input_list.length) {
+        input_list[input_list.length - 1].focus();
+      }
+    })
+
     .declareMethod('render', function (options) {
       return this.changeState({
         search_column_list: options.search_column_list,
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
index 5f45d34bc9..bf2ee8b6c5 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>955.38135.49149.41489</string> </value>
+                <value> <string>963.33713.16839.14114</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1480342558.79</float>
+                        <float>1510929709.6</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt
index 9c905035bd..fcd3e51c08 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt
@@ -50,7 +50,6 @@
 
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_filter_and" />
 
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
 <tal:block tal:define="filter_section_configuration python: {'key': 'id', 'value': '0', 'index': 0}">
   <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_filter_section" />
 </tal:block>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt
index 66f714f2b3..7aa6943afa 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt
@@ -53,7 +53,29 @@
 
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_filter_and" />
 
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
+<tr>
+  <td colspan="3"><b>Check that a default filter section is displayed</b></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_search_editor.html')]//div[@class='filter_item_container']/div[1]</td>
+  <td></td>
+</tr>
+<tr>
+  <td>verifyValue</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_search_editor.html')]//div[@class='filter_item_container']/div[1]//select</td>
+  <td>id</td>
+</tr>
+<tr>
+  <td>verifyValue</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_search_editor.html')]//div[@class='filter_item_container']/div[1]//input</td>
+  <td></td>
+</tr>
+<tr>
+  <td colspan="3"><b></b></td>
+</tr>
+
+
 <tal:block tal:define="filter_section_configuration python: {'key': 'id', 'value': '0', 'index': 0}">
   <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_filter_section" />
 </tal:block>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt
index 1f0e21c475..bacd56560e 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt
@@ -54,7 +54,6 @@
 
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_filter_and" />
 
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
 <tal:block tal:define="filter_section_configuration python: {'key': 'id', 'value': '0', 'index': 0}">
   <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_filter_section" />
 </tal:block>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt
index 92faaa779e..17e1f67d9a 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt
@@ -50,7 +50,6 @@
 
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_filter_and" />
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/change_filter_to_or" />
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
 <tal:block tal:define="filter_section_configuration python: {'key': 'id', 'value': '0', 'index': 0}">
   <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_filter_section" />
 </tal:block>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt
index bfc93a31c7..de31ea8a87 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt
@@ -54,7 +54,6 @@
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_filter_and" />
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/change_filter_to_or" />
 
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
 <tal:block tal:define="filter_section_configuration python: {'key': 'id', 'value': '0', 'index': 0}">
   <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_filter_section" />
 </tal:block>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt
index 0b549a2962..32b7c1bccd 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt
@@ -52,7 +52,6 @@
 </tr>
 
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_filter_and" />
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
 <tal:block tal:define="filter_section_configuration python: {'key': 'id', 'value': '0', 'index': 0}">
   <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_filter_section" />
 </tal:block>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testFilterEditor.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testFilterEditor.zpt
index 24799af1dd..2d4e21b5cd 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testFilterEditor.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testFilterEditor.zpt
@@ -13,7 +13,6 @@
 
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/create_translation_data" />
 
-
 <tr>
   <td>open</td>
   <td>${base_url}/web_site_module/renderjs_runner/wo/#/foo_bar_module</td>
@@ -46,48 +45,43 @@
 </tr>
 
 
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
-
 <tr>
   <td>waitForElementPresent</td>
   <td>//div[@class="filter_item_container"]/div[1]//select[1]</td>
   <td></td>
 </tr>
 
-
 <tr>
   <td>verifySelectOptions</td>
   <td>//div[@class="filter_item_container"]/div[1]//select[1]</td>
   <td>ID,biaoti,soushuowenben</td>
 </tr>
 
-
-
 <tr>
   <td>verifySelectOptions</td>
   <td>//div[@class="filter_item_container"]/div[1]//select[2]</td>
-  <td>baohang</td>
+  <td>wangquanfuhe,guanjianchi</td>
 </tr>
 
 
+
 <tr>
   <td>select</td>
   <td>//div[@class="filter_item_container"]/div[1]//select[1]</td>
-  <td>index=1</td>
+  <td>index=2</td>
 </tr>
 
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//option[@data-i18n='Exact Match']</td>
+  <td>//option[@data-i18n='Contain']</td>
   <td></td>
 </tr>
 
-
 <tr>
   <td>verifySelectOptions</td>
   <td>//div[@class="filter_item_container"]/div[1]//select[2]</td>
-  <td>wangquanfuhe,guanjianchi</td>
+  <td>baohang</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testPageFront.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testPageFront.zpt
index 2fba74a0b3..827c74d017 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testPageFront.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testPageFront.zpt
@@ -68,8 +68,6 @@
   <td></td>
 </tr>
 
-<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_filter_section" />
-
 <tr>
   <td>waitForElementPresent</td>
   <td>//div[@class="filter_item_container"]/div[1]//select</td>
-- 
2.30.9