diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html index dae35721404d1c3b2c56314dccf27b78876fb2c8..12bc01e1c198550599d5e754da96046c1ac91c16 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html @@ -5,7 +5,7 @@ data-i18n=No such document was found data-i18n=Create New data-i18n=Explore the Search Result List - data-i18n=No such document was found + data-i18n=Invalid search criteria --> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml index 3097fbba7d4fbfa738872c28bd72b4c32496e57e..7c1e2d834e1c74f99ada0503af5e1033397ac601 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml @@ -232,7 +232,7 @@ serial - 971.20733.1333.20838 + 974.59811.2178.43622 state @@ -250,7 +250,7 @@ - 1541150851.14 + 1563201471.02 UTC diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js index cd6796ecea6b81c6a074d98bf33c3e37f8215fdf..aadbf0cdfc1f3c7e1c7f6706dbdcd7151a898d25 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js @@ -243,7 +243,8 @@ return RSVP.Queue() .push(function () { var plane = gadget.element.querySelector("a"), - ul = gadget.element.querySelector(".search_ul"); + ul = gadget.element.querySelector(".search_ul"), + translation_promise; plane.href = ''; // uid is known @@ -309,92 +310,114 @@ return RSVP.delay(200); }) .push(function () { - return RSVP.all([ - gadget.jio_allDocs({ - query: Query.objectToSearchText(new ComplexQuery({ - operator: "AND", - query_list: [ - QueryFactory.create( - new URI(gadget.state.query).query(true).query - ), - new SimpleQuery({ - key: gadget.state.catalog_index, - value: value_text - }) - ] - })), - limit: [0, 10], - select_list: [gadget.state.catalog_index, "uid"], - sort_on: JSON.parse(gadget.state.sort_list_json) - }), - gadget.getTranslationList([ - 'Create New', - 'Explore the Search Result List' - ]) + translation_promise = gadget.getTranslationList([ + 'Create New', + 'Explore the Search Result List' ]); - }) - .push(function (result_list) { - var i, - row, - portal_type_list, - translated_portal_type_list, - fragment_element = document.createDocumentFragment(), - li_element; - - plane.className = JUMP_UNKNOWN_CLASS_STR; - // Documents + return gadget.jio_allDocs({ + query: Query.objectToSearchText(new ComplexQuery({ + operator: "AND", + query_list: [ + QueryFactory.create( + new URI(gadget.state.query).query(true).query + ), + new SimpleQuery({ + key: gadget.state.catalog_index, + value: value_text + }) + ] + })), + limit: [0, 10], + select_list: [gadget.state.catalog_index, "uid"], + sort_on: JSON.parse(gadget.state.sort_list_json) + }) + .push(function (result) { + return new RSVP.Queue() + .push(function () { + return RSVP.all([result, translation_promise]); + }) + .push(function (result_list) { + var i, + row, + portal_type_list, + translated_portal_type_list, + fragment_element = document.createDocumentFragment(), + li_element; + + plane.className = JUMP_UNKNOWN_CLASS_STR; + + // Documents //
  • {{value}}
  • - for (i = 0; i < result_list[0].data.rows.length; i += 1) { - row = result_list[0].data.rows[i]; - li_element = document.createElement('li'); - li_element.setAttribute('class', - 'ui-icon-sign-in ui-btn-icon-right'); - li_element.setAttribute('data-relative-url', row.id); - li_element.setAttribute('data-uid', row.value.uid); - li_element.textContent = row.value[gadget.state.catalog_index]; - fragment_element.appendChild(li_element); - } - - // New documents + for (i = 0; i < result_list[0].data.rows.length; i += 1) { + row = result_list[0].data.rows[i]; + li_element = document.createElement('li'); + li_element.setAttribute('class', + 'ui-icon-sign-in ui-btn-icon-right'); + li_element.setAttribute('data-relative-url', row.id); + li_element.setAttribute('data-uid', row.value.uid); + li_element.textContent = + row.value[gadget.state.catalog_index]; + fragment_element.appendChild(li_element); + } + + // New documents //
  • Create New // {{name}}: {{../value}}
  • - if (gadget.state.allow_creation) { - portal_type_list = JSON.parse(gadget.state.portal_types); - translated_portal_type_list = - JSON.parse(gadget.state.translated_portal_types); - for (i = 0; i < portal_type_list.length; i += 1) { - li_element = document.createElement('li'); - li_element.setAttribute('class', - 'ui-icon-plus ui-btn-icon-right'); - li_element.setAttribute('data-create-object', - portal_type_list[i]); - li_element.setAttribute('name', - translated_portal_type_list[i]); - li_element.textContent = - result_list[1][0] + ' ' + translated_portal_type_list[i] + - ': ' + value_text; - fragment_element.appendChild(li_element); - } - } - - // Explore + if (gadget.state.allow_creation) { + portal_type_list = + JSON.parse(gadget.state.portal_types); + translated_portal_type_list = + JSON.parse(gadget.state.translated_portal_types); + for (i = 0; i < portal_type_list.length; i += 1) { + li_element = document.createElement('li'); + li_element.setAttribute('class', + 'ui-icon-plus ui-btn-icon-right'); + li_element.setAttribute('data-create-object', + portal_type_list[i]); + li_element.setAttribute('name', + translated_portal_type_list[i]); + li_element.textContent = + result_list[1][0] + ' ' + + translated_portal_type_list[i] + + ': ' + value_text; + fragment_element.appendChild(li_element); + } + } + + // Explore // - li_element = document.createElement('li'); - li_element.setAttribute('class', - 'ui-icon-search ui-btn-icon-right'); - li_element.setAttribute('data-explore', - true); - li_element.textContent = result_list[1][1]; - fragment_element.appendChild(li_element); - - while (ul.firstChild) { - ul.removeChild(ul.firstChild); - } - ul.appendChild(fragment_element); + li_element = document.createElement('li'); + li_element.setAttribute('class', + 'ui-icon-search ui-btn-icon-right'); + li_element.setAttribute('data-explore', + true); + li_element.textContent = result_list[1][1]; + fragment_element.appendChild(li_element); + + while (ul.firstChild) { + ul.removeChild(ul.firstChild); + } + ul.appendChild(fragment_element); + }); + }, function (error) { + if (error instanceof Error && + error.hash && + error.hash.expected && + error.hash.expected.length === 1 && + error.hash.expected[0] === "'QUOTE'") { + return gadget.getTranslationList([ + "Invalid search criteria" + ]) + .push(function (translation_list) { + return gadget.notifyInvalid(translation_list[0]); + }); + } + throw error; + }); }); }); diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml index 33202becdcd926132408bdf99ed7a649f2d06d09..a13a0a390bd48d46cc1a144e87312bb7522902e9 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml @@ -234,7 +234,7 @@
    serial - 971.23288.3697.17425 + 977.6117.6830.21572 state @@ -252,7 +252,7 @@ - 1541156739.42 + 1563260997.53 UTC @@ -311,7 +311,7 @@ - 1541669313.00 + 1541669313.0 UTC diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_relation_field_zuite/testRelationFieldBackslash.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_relation_field_zuite/testRelationFieldBackslash.xml new file mode 100644 index 0000000000000000000000000000000000000000..5fff8d2a9df3a4d180bc66f3994e4586177eb6a0 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_relation_field_zuite/testRelationFieldBackslash.xml @@ -0,0 +1,58 @@ + + + + + + + + + + _bind_names + + + + + + + + + + _asgns + + + + name_subpath + traverse_subpath + + + + + + + + + + + content_type + text/html + + + expand + 0 + + + id + testRelationFieldBackslash + + + output_encoding + utf-8 + + + title + + + + + + diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_relation_field_zuite/testRelationFieldBackslash.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_relation_field_zuite/testRelationFieldBackslash.zpt new file mode 100644 index 0000000000000000000000000000000000000000..575c3f9aa8fa794e5b15d4daf2e62c2e3eae073e --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_relation_field_zuite/testRelationFieldBackslash.zpt @@ -0,0 +1,115 @@ + + + +Test RenderJS UI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test RenderJS UI
    open${base_url}/foo_module/ListBoxZuite_reset
    assertTextPresentReset Successfully.
    open${base_url}/foo_module/FooModule_createObjects?num:int=1
    waitForTextPresentCreated Successfully.
    open${base_url}/web_site_module/renderjs_runner/#/foo_module?editable=true
    waitForElementPresent//a[text()="Title 0"]
    click//a[text()="Title 0"]
    type//input[@name="field_my_foo_category_title"]\
    fireEvent//input[@name='field_my_foo_category_title']input
    waitForTextPresentInvalid search criteria
    type//input[@name="field_my_foo_category_title"]Quantity
    fireEvent//input[@name='field_my_foo_category_title']input
    waitForElementPresent//li[@data-relative-url='portal_categories/divergence_scope/quantity']
    fireEvent//input[@name='field_my_foo_category_title']blur
    click//li[@data-relative-url='portal_categories/divergence_scope/quantity']
    verifyValue//input[@name="field_my_foo_category_title"]Quantity
    + + \ No newline at end of file