From fa673cc3ee0cea36e3959402ede0d4d3dca4909b Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Mon, 7 May 2018 09:50:42 +0000 Subject: [PATCH] [erp5_web_renderjs_ui] Do not display empty relation field in non editable mode --- .../rjs_gadget_erp5_pt_form_view_js.js | 12 ++++++++++-- .../rjs_gadget_erp5_pt_form_view_js.xml | 4 ++-- .../testFormViewField.zpt | 14 +++++++++++++- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.js index 7ff34dc693..f42f94646f 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.js @@ -12,8 +12,16 @@ if (field.type === "FormBox") {return true; } // hidden fields should not be obviously rendered if (field.hidden === 1) {return false; } - // empty default value is bad and final decision - return !isEmpty(field['default']); + // empty default value must not be displayed + if (isEmpty(field['default'])) { + return false; + } + // relation field with no value must not be displayed too + if ((field['default'].length === 1) && (isEmpty(field['default'][0]))) { + return false; + } + // display the field by default + return true; } rJS(window) diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.xml index db0dc1b084..5fbcef865e 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_view_js.xml @@ -230,7 +230,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>966.32979.9603.63197</string> </value> + <value> <string>967.24700.63112.6741</string> </value> </item> <item> <key> <string>state</string> </key> @@ -248,7 +248,7 @@ </tuple> <state> <tuple> - <float>1522336529.93</float> + <float>1525686010.1</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewField.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewField.zpt index a93d17ca69..85a201fb25 100644 --- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewField.zpt +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewField.zpt @@ -42,7 +42,19 @@ <td></td> </tr> -<!-- Field with value are displayed in read only --> +<!-- Empty relation field are not displayed --> +<tr> + <td>assertElementNotPresent</td> + <td>//label[@for='field_my_foo_category_title']</td> + <td></td> +</tr> +<tr> + <td>assertElementNotPresent</td> + <td>//input[@name='field_my_foo_category_title']</td> + <td></td> +</tr> + +<!-- string Field with value are displayed in read only --> <tr> <td>assertElementPresent</td> <td>//label[@for='field_my_id' and text()='ID']</td> -- 2.30.9