diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml index 7650f685fa6da0f50b99a6fb22aa0be4c46758fb..0ecb27efeabf158779959fb13464eba262c157df 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml @@ -108,7 +108,7 @@ <value> <string encoding="cdata"><![CDATA[ CACHE MANIFEST\n -# generated on Tue, 05 Sep 2017 16:00:03 GMT+0200\n +# generated on Thu, 28 Dec 2017 17:00:03 GMT+0200\n # XXX + fonts\n # images/ajax-loader.gif\n CACHE:\n @@ -122,6 +122,8 @@ font-awesome/font-awesome-webfont.svg?v=4.6.3#fontawesomeregular\n gadget_erp5_worklist_empty.svg?format=svg\n erp5_launcher_nojqm.js\n gadget_erp5_nojqm.css\n +gadget_erp5_configure_editor.html\n +gadget_erp5_configure_editor.js\n gadget_erp5_editor_panel.html\n gadget_erp5_editor_panel.js\n gadget_erp5_field_checkbox.html\n @@ -382,7 +384,7 @@ NETWORK:\n </item> <item> <key> <string>serial</string> </key> - <value> <string>961.46731.40234.57975</string> </value> + <value> <string>964.28371.30938.25275</string> </value> </item> <item> <key> <string>state</string> </key> @@ -400,7 +402,7 @@ NETWORK:\n </tuple> <state> <tuple> - <float>1503932860.56</float> + <float>1514476860.44</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_html.html new file mode 100644 index 0000000000000000000000000000000000000000..59c7014bc7452a33d1efdfffde7e03e3fcecc4db --- /dev/null +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_html.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8" /> + <meta name="viewport" content="width=device-width, user-scalable=no" /> + <title>ERP5 Configure Editor</title> + + <!-- renderjs --> + <script src="rsvp.js"></script> + <script src="renderjs.js"></script> + <script src="handlebars.js"></script> + + <!-- custom script --> + <script src="gadget_erp5_configure_editor.js"></script> + + <script id="column-item-template" type="text/x-handlebars-template"> + <button type="button" class="ui-icon ui-btn ui-btn-inline ui-icon-minus ui-icon-shadow"></button> + <div class="column_item ui-controlgroup-controls" > + <select data-iconpos="left"> + {{#each option}} + {{#equal value selected_option}} + <option selected="selected" data-i18n="{{text}}" value="{{value}}">{{text}}</option> + {{else}} + <option value="{{value}}" data-i18n="{{text}}">{{text}}</option> + {{/equal}} + {{/each}} + </select> + </div> + </script> + + <script id="column-template" type="text/x-handlebars-template"> + <div class="ui-panel-inner"> + <div data-role="header" role="banner" class="ui-header ui-bar-inherit"> + <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right"> + <div class="ui-controlgroup-controls"> + <button data-rel="save" data-i18n="Submit" type="submit" class="submit responsive ui-last-child ui-btn ui-btn-icon-left ui-icon-check">Submit</button> + </div> + </div> + + <h1 class="ui-title" role="heading" data-i18n="Configure Editor" aria-level="1">Configure Editor</h1> + + <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left"> + <div class="ui-controlgroup-controls"> + <button data-i18n="Close" data-rel="close" type="button" class="close responsive ui-first-child ui-btn ui-btn-icon-left ui-icon-times">Close</button> + </div> + </div> + </div> + + <section class="ui-body-c ui-content-section"> + <div class="column_item_container ui-controlgroup ui-corner_all"></div> + <button type="button" class="plus ui-btn-c ui-override-theme ui-btn ui-icon-plus ui-btn-icon-left ui-corner-all">Add Criteria</button> + </section> + </div> + </script> + + </head> + <body> + <form class="configure_editor"> + <div class="container"></div> + </form> + </body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_html.xml new file mode 100644 index 0000000000000000000000000000000000000000..98a0abb4c9d47433d62d0b941573b1477c63facd --- /dev/null +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_html.xml @@ -0,0 +1,324 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Page" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_erp5_configure_editor.html</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>rjs_gadget_erp5_configureeditor_html</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Page</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Erp5 Configure Editor</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1513702300.55</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>964.16845.61076.26419</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1513851113.27</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1513702288.15</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_js.js new file mode 100644 index 0000000000000000000000000000000000000000..0aa09415ae7815be0d22b243df8d2fe3f2d6387d --- /dev/null +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_js.js @@ -0,0 +1,150 @@ +/*jslint indent: 2, maxerr: 3, nomen: true */ +/*global window, document, rJS, RSVP, Handlebars*/ +(function (window, document, rJS, RSVP, Handlebars) { + "use strict"; + + var gadget_klass = rJS(window), + template_element = gadget_klass.__template_element, + column_item_template = Handlebars.compile(template_element + .getElementById("column-item-template") + .innerHTML), + column_template = Handlebars.compile(template_element + .getElementById("column-template") + .innerHTML); + + Handlebars.registerHelper('equal', function (left_value, right_value, options) { + if (arguments.length < 3) { + throw new Error("Handlebars Helper equal needs 2 parameters"); + } + if (left_value !== right_value) { + return options.inverse(this); + } + return options.fn(this); + }); + + + function createColumnItemTemplate(gadget, column_value, displayable_column_list) { + var column_value_list = column_value || [], + option_list = [], + i; + + for (i = 0; i < displayable_column_list.length; i += 1) { + option_list.push({ + text: displayable_column_list[i][1], + value: displayable_column_list[i][0], + selected_option: column_value_list[0] + }); + } + + return gadget.translateHtml(column_item_template({ + option: option_list + })); + } + + gadget_klass + ////////////////////////////////////////////// + // acquired method + ////////////////////////////////////////////// + .declareAcquiredMethod("translateHtml", "translateHtml") + .declareAcquiredMethod("redirect", "redirect") + .declareAcquiredMethod("trigger", "trigger") + + .onStateChange(function () { + var gadget = this, + div = document.createElement("div"), + container = gadget.element.querySelector(".container"); + + return gadget.translateHtml(column_template()) + .push(function (translated_html) { + + div.innerHTML = translated_html; + + return RSVP.all(gadget.state.column_list + .map(function (column_item) { + return createColumnItemTemplate(gadget, column_item, gadget.state.displayable_column_list); + }) + ); + }) + .push(function (result_list) { + var i, + subdiv, + filter_item_container = div.querySelector('.column_item_container'); + + for (i = 0; i < result_list.length; i += 1) { + subdiv = document.createElement("div"); + subdiv.innerHTML = result_list[i]; + filter_item_container.appendChild(subdiv); + } + + while (container.firstChild) { + container.removeChild(container.firstChild); + } + container.appendChild(div); + }); + }) + + .declareMethod('render', function (options) { + return this.changeState({ + column_list: options.column_list, + displayable_column_list: options.displayable_column_list, + key: options.key + }); + }) + + .onEvent('click', function (evt) { + var gadget = this; + + if (evt.target.classList.contains('close')) { + evt.preventDefault(); + return this.trigger(); + } + + if (evt.target.classList.contains('plus')) { + evt.preventDefault(); + return createColumnItemTemplate(gadget, undefined, gadget.state.displayable_column_list) + .push(function (template) { + var tmp = document.createElement("div"), + container = gadget.element.querySelector(".column_item_container"); + tmp.innerHTML = template; + container.appendChild(tmp); + }); + } + + if (evt.target.classList.contains('ui-icon-minus')) { + evt.preventDefault(); + evt.target.parentElement.parentElement.removeChild(evt.target.parentElement); + } + + }, false, false) + + .onEvent('submit', function (evt) { + var gadget = this, + options = {}, + form = evt.target, + i, + field, + column_list = []; + for (i = 0; i < form.elements.length; i += 1) { + field = form.elements[i]; + if (field.nodeName.toUpperCase() === 'SELECT') { + column_list.push(field.value); + } + } + if (column_list.length === 0) { + options[gadget.state.key] = undefined; + } else { + // Remove duplicated elements (same column should not be displayed twice) + column_list = column_list.filter(function (el, i, a) { + return i === a.indexOf(el); + }); + + options[gadget.state.key] = column_list; + } + + return gadget.redirect({ + command: 'store_and_change', + options: options + }); + }); + +}(window, document, rJS, RSVP, Handlebars)); \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_js.xml new file mode 100644 index 0000000000000000000000000000000000000000..7257e2665cd360b3c469b560da70c368158a88d2 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_configureeditor_js.xml @@ -0,0 +1,320 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Web Script" module="erp5.portal_type"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_Access_contents_information_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Add_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Change_local_roles_Permission</string> </key> + <value> + <tuple> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_Modify_portal_content_Permission</string> </key> + <value> + <tuple> + <string>Assignee</string> + <string>Assignor</string> + <string>Manager</string> + </tuple> + </value> + </item> + <item> + <key> <string>_View_Permission</string> </key> + <value> + <tuple> + <string>Anonymous</string> + <string>Assignee</string> + <string>Assignor</string> + <string>Associate</string> + <string>Auditor</string> + <string>Manager</string> + <string>Owner</string> + </tuple> + </value> + </item> + <item> + <key> <string>content_md5</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>default_reference</string> </key> + <value> <string>gadget_erp5_configure_editor.js</string> </value> + </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>rjs_gadget_erp5_configureeditor_js</string> </value> + </item> + <item> + <key> <string>language</string> </key> + <value> <string>en</string> </value> + </item> + <item> + <key> <string>portal_type</string> </key> + <value> <string>Web Script</string> </value> + </item> + <item> + <key> <string>short_title</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>Gadget Erp5 Configure Editor JS</string> </value> + </item> + <item> + <key> <string>version</string> </key> + <value> <string>001</string> </value> + </item> + <item> + <key> <string>workflow_history</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="2" aka="AAAAAAAAAAI="> + <pickle> + <global name="PersistentMapping" module="Persistence.mapping"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>data</string> </key> + <value> + <dictionary> + <item> + <key> <string>document_publication_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent> + </value> + </item> + <item> + <key> <string>edit_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent> + </value> + </item> + <item> + <key> <string>processing_status_workflow</string> </key> + <value> + <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent> + </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </pickle> + </record> + <record id="3" aka="AAAAAAAAAAM="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>publish_alive</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1513702253.2</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + <item> + <key> <string>validation_state</string> </key> + <value> <string>published_alive</string> </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="4" aka="AAAAAAAAAAQ="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>edit</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> + <none/> + </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>964.27354.5400.60791</string> </value> + </item> + <item> + <key> <string>state</string> </key> + <value> <string>current</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1514393971.04</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> + <record id="5" aka="AAAAAAAAAAU="> + <pickle> + <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> + </pickle> + <pickle> + <tuple> + <none/> + <list> + <dictionary> + <item> + <key> <string>action</string> </key> + <value> <string>detect_converted_file</string> </value> + </item> + <item> + <key> <string>actor</string> </key> + <value> <string>zope</string> </value> + </item> + <item> + <key> <string>comment</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>error_message</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>external_processing_state</string> </key> + <value> <string>converted</string> </value> + </item> + <item> + <key> <string>serial</string> </key> + <value> <string>0.0.0.0</string> </value> + </item> + <item> + <key> <string>time</string> </key> + <value> + <object> + <klass> + <global name="DateTime" module="DateTime.DateTime"/> + </klass> + <tuple> + <none/> + </tuple> + <state> + <tuple> + <float>1513702226.92</float> + <string>UTC</string> + </tuple> + </state> + </object> + </value> + </item> + </dictionary> + </list> + </tuple> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.js index f3f9a77cc4f955173a1efaac808c44869d481530..3439ba5aa9a53cf7a929709f6e4957521fcde367 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.js @@ -29,6 +29,7 @@ suboptions = { hide_enabled: form_definition.hide_enabled, // listbox specific + configure_enabled: form_definition.configure_enabled, // listbox specific extended_search: form_definition.extended_search, // searchfield specific field_type: rendered_document[field_name].type, label: ((group_name !== "bottom") && (rendered_document[field_name].title.length > 0)), // no label for bottom group and field without title diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml index af4aac134f4276517ea2e164cd69ed48a18f6dbf..d69449eb580f739bbbc8295fca57736cb739a294 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml @@ -230,7 +230,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>961.37896.39526.64290</string> </value> + <value> <string>963.11788.48702.26146</string> </value> </item> <item> <key> <string>state</string> </key> @@ -248,7 +248,7 @@ </tuple> <state> <tuple> - <float>1503478842.83</float> + <float>1514393621.04</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html index 963d3de821930ffe32e2d90a43f0c9da1d56d6d2..85e34c32cfcfffa21d6e83c8f26cfe1cb4358a1c 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html @@ -156,16 +156,9 @@ <script id="listbox-template" type="text/x-handlebars-template"> <div class="ui-table-header ui-header ui-bar-c ui-corner-all"> <h1 data-i18n="{{title}}" class="ui-title ui-override-theme">{{title}}<span> <span class="listboxloader ui-icon-spinner ui-btn-icon-left"></span></span></h1> - <!--div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left"> - <div class="ui-controlgroup-controls"--> - <button data-rel="hide" data-i18n="{{hide_button_text}}" name="{{hide_button_name}}" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-eye ui-btn-icon-left {{hide_class}}">{{hide_button_text}}</button> - <!--/div> - </div> - <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right"> - <div class="ui-controlgroup-controls"--> - <button data-rel="Sort" data-i18n="Sort" name="Sort" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-sort-amount-desc ui-btn-icon-left {{hide_sort}}">Sort</button> - <!--/div> - </div--> + <button data-rel="hide" data-i18n="{{hide_button_text}}" name="{{hide_button_name}}" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-eye ui-btn-icon-left {{hide_class}}">{{hide_button_text}}</button> + <button data-rel="configure_columns" data-i18n="Configure" name="Configure" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-filter ui-btn-icon-left {{configure_class}}">Configure</button> + <button data-rel="Sort" data-i18n="Sort" name="Sort" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-sort-amount-desc ui-btn-icon-left {{sort_class}}">Sort</button> </div> <table class="ui-responsive ui-body-c ui-table-inset"> <thead class="ui-bar-inherit thead"></thead> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml index d767e4fe67ca1170fa5195629899aebceb22da87..e06ae3c88d024d14ada3bc48f7ea649caa1b8d88 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml @@ -234,7 +234,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>962.24395.32903.29832</string> </value> + <value> <string>964.27340.60822.54681</string> </value> </item> <item> <key> <string>state</string> </key> @@ -252,7 +252,7 @@ </tuple> <state> <tuple> - <float>1506526285.9</float> + <float>1514393372.0</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js index f260e27675c245c61ab4046c5d7dcfaa2e3f8038..c5bfa03cc8d75151dfba0da5779671ddb49a29d4 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js @@ -60,7 +60,8 @@ return cell_gadget.render({ field_type: sub_field_json.type, field_json: sub_field_json, - label: false}); + label: false + }); }); } for (i = 0; i < element_list.length; i += 1) { @@ -158,7 +159,6 @@ .declareMethod('render', function (options) { var gadget = this, field_json = options.field_json, - i, sort_column_list = [], search_column_list = [], query_string, @@ -176,16 +176,6 @@ return column_sort; } - /** Check whether item is in outer-scoped field_json.column_list */ - function is_in_column_list(item) { - for (i = 0; i < field_json.column_list.length; i += 1) { - if (field_json.column_list[i][0] === item[0] && field_json.column_list[i][1] === item[1]) { - return true; - } - } - return false; - } - // use only visible columns for sort if (field_json.sort_column_list.length) { sort_column_list = field_json.sort_column_list; @@ -230,10 +220,47 @@ // XXX Fix in case of multiple listboxes return RSVP.all([ gadget.getUrlParameter(field_json.key + '_begin_from'), - gadget.getUrlParameter(field_json.key + '_sort_list:json') + gadget.getUrlParameter(field_json.key + '_sort_list:json'), + gadget.getUrlParameter(field_json.key + '_column_list:json') ]); }) .push(function (result_list) { + var displayed_column_list = result_list[2] || [], + displayed_column_item_list = [], + displayable_column_item_list = [], + displayable_column_dict = {}, + i, + j, + column_id, + column_title, + not_concatenated_list = [field_json.column_list, (field_json.all_column_list || [])]; + // Calculate the list of all displayable columns + for (i = 0; i < not_concatenated_list.length; i += 1) { + for (j = 0; j < not_concatenated_list[i].length; j += 1) { + column_id = not_concatenated_list[i][j][0]; + if (!displayable_column_dict.hasOwnProperty(column_id)) { + column_title = not_concatenated_list[i][j][1]; + displayable_column_dict[column_id] = column_title; + displayable_column_item_list.push([column_id, column_title]); + } + } + } + + // Check if user filters the column to display + if (displayed_column_list !== 0) { + for (i = 0; i < displayed_column_list.length; i += 1) { + if (displayable_column_dict.hasOwnProperty(displayed_column_list[i])) { + displayed_column_item_list.push([ + displayed_column_list[i], + displayable_column_dict[displayed_column_list[i]] + ]); + } + } + } + if (displayed_column_item_list.length === 0) { + displayed_column_item_list = field_json.column_list; + } + return gadget.changeState({ key: field_json.key, title: field_json.title, @@ -252,15 +279,18 @@ list_method: field_json.list_method, list_method_template: field_json.list_method_template, - column_list_json: JSON.stringify(field_json.column_list), + column_list_json: JSON.stringify(displayed_column_item_list), + displayable_column_list_json: + JSON.stringify(displayable_column_item_list), sort_column_list_json: JSON.stringify(sort_column_list), search_column_list_json: JSON.stringify(search_column_list), - hide_sort: field_json.sort_column_list.length ? "" : "ui-disabled", + sort_class: field_json.sort_column_list.length ? "" : "ui-disabled", field_id: options.field_id, extended_search: options.extended_search, hide_class: options.hide_enabled ? "" : "ui-disabled", + configure_class: options.configure_enabled ? "" : "ui-disabled", command: field_json.command || 'index', // Force line calculation in any case @@ -321,8 +351,9 @@ (modification_dict.hasOwnProperty('title')) || (modification_dict.hasOwnProperty('has_error')) || (modification_dict.hasOwnProperty('show_line_selector')) || - (modification_dict.hasOwnProperty('hide_sort')) || + (modification_dict.hasOwnProperty('sort_class')) || (modification_dict.hasOwnProperty('hide_class')) || + (modification_dict.hasOwnProperty('configure_class')) || (modification_dict.hasOwnProperty('extended_search'))) { // display sorting arrow inside correct columns @@ -388,7 +419,8 @@ return RSVP.all([ gadget.translateHtml(listbox_template({ hide_class: gadget.state.hide_class, - hide_sort: gadget.state.hide_sort, + sort_class: gadget.state.sort_class, + configure_class: gadget.state.configure_class, title: gadget.state.title, hide_button_text: hide_button_text, hide_button_name: hide_button_name @@ -663,6 +695,7 @@ var gadget = this, sort_button = gadget.element.querySelector('button[name="Sort"]'), hide_button = gadget.element.querySelector('button[name="Hide"]'), + configure_button = gadget.element.querySelector('button[name="Configure"]'), select_button = gadget.element.querySelector('button[name="SelectRows"]'), url, options = {}, @@ -672,6 +705,15 @@ search_query, i; + if (evt.target === configure_button) { + evt.preventDefault(); + url = "gadget_erp5_configure_editor.html"; + options.column_list = JSON.parse(gadget.state.column_list_json); + options.displayable_column_list = JSON.parse(gadget.state.displayable_column_list_json); + options.key = gadget.state.key + "_column_list:json"; + return gadget.renderEditorPanel(url, options); + } + if (evt.target === sort_button) { evt.preventDefault(); url = "gadget_erp5_sort_editor.html"; diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml index dc2b3b8484e8b2a3aa92e324b59c22935ee56b35..950e8869f2e9dd86cf214ba10d082f1d6440e032 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml @@ -242,7 +242,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>964.25791.46697.42342</string> </value> + <value> <string>964.28739.16428.44868</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +260,7 @@ </tuple> <state> <tuple> - <float>1514375384.8</float> + <float>1514478789.32</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css index 033a1eb7a137f99d6a8d908853c989383c58e9f3..44e2937abf0457e18e547bb83cfefca9e3872575 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css @@ -642,15 +642,21 @@ div[data-gadget-scope='editor_panel'] section fieldset input[type="radio"] { display: inline-block; } div[data-gadget-scope='editor_panel'] section .filter_item_container > div, -div[data-gadget-scope='editor_panel'] section .sort_item_container > div { +div[data-gadget-scope='editor_panel'] section .sort_item_container > div, +div[data-gadget-scope='editor_panel'] section .column_item_container > div { display: flex; align-items: flex-start; padding: 6pt 0; } div[data-gadget-scope='editor_panel'] section .filter_item_container > div .filter_item, div[data-gadget-scope='editor_panel'] section .sort_item_container > div .filter_item, +div[data-gadget-scope='editor_panel'] section .column_item_container > div .filter_item, div[data-gadget-scope='editor_panel'] section .filter_item_container > div .sort_item, -div[data-gadget-scope='editor_panel'] section .sort_item_container > div .sort_item { +div[data-gadget-scope='editor_panel'] section .sort_item_container > div .sort_item, +div[data-gadget-scope='editor_panel'] section .column_item_container > div .sort_item, +div[data-gadget-scope='editor_panel'] section .filter_item_container > div .column_item, +div[data-gadget-scope='editor_panel'] section .sort_item_container > div .column_item, +div[data-gadget-scope='editor_panel'] section .column_item_container > div .column_item { flex: 1; } div[data-gadget-scope='editor_panel'] section button { diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml index 2f162d59d1f213d9e059f2adf151eab77a888711..9a4310fd67ed2a453f169ca967d2e745068e8a11 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml @@ -242,7 +242,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>964.15700.34446.43025</string> </value> + <value> <string>964.15703.62439.17117</string> </value> </item> <item> <key> <string>state</string> </key> @@ -260,7 +260,7 @@ </tuple> <state> <tuple> - <float>1513694877.1</float> + <float>1513850228.39</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js index 42efbd496bd19368668f4e0381e91d3517ab43ce..e775507d909833c72a84042a31106f481fae5652 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.js @@ -62,8 +62,9 @@ form_options.jio_key = form_gadget.state.jio_key; form_options.editable = form_gadget.state.editable; - // XXX Hardcoded for listbox's hide functionality + // XXX Hardcoded for listbox's hide/configure functionalities form_options.form_definition.hide_enabled = true; + form_options.form_definition.configure_enabled = true; // XXX not generic, fix later if (form_gadget.state.extended_search) { @@ -101,8 +102,8 @@ form_gadget.getUrlFor({command: 'change', options: {page: "action"}}), form_gadget.getUrlFor({command: 'display', options: {}}), form_gadget.state.erp5_document._links.action_object_jio_report ? - form_gadget.getUrlFor({command: 'change', options: {page: "export"}}) : - "", + form_gadget.getUrlFor({command: 'change', options: {page: "export"}}) : + "", calculatePageTitle(form_gadget, form_gadget.state.erp5_document) ]); }) diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml index abc85fcda88756a1148b557bafd79193c1075ff1..4c258c65a38df5248712cb3a0adcd638d9ff5288 100644 --- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml +++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml @@ -230,7 +230,7 @@ </item> <item> <key> <string>serial</string> </key> - <value> <string>963.51100.33598.65024</string> </value> + <value> <string>964.28769.36150.45141</string> </value> </item> <item> <key> <string>state</string> </key> @@ -248,7 +248,7 @@ </tuple> <state> <tuple> - <float>1511973554.81</float> + <float>1514478835.27</float> <string>UTC</string> </tuple> </state> diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt index 26fb2189b8ebbb62d04c41a954991a2bed986c67..9ac9813e3ca616ce6a27a786b3566e27789c52ff 100644 --- a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt +++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt @@ -766,13 +766,13 @@ div[data-gadget-scope='editor_panel'] { } } - .filter_item_container, .sort_item_container { + .filter_item_container, .sort_item_container, .column_item_container { & > div { display: flex; align-items: flex-start; padding: @margin-size 0; - .filter_item, .sort_item { + .filter_item, .sort_item, .column_item { flex: 1; } } diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigure.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigure.xml new file mode 100644 index 0000000000000000000000000000000000000000..9845e4846252756e71557debdaa95a437d87bd2c --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigure.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigure</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigure.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigure.zpt new file mode 100644 index 0000000000000000000000000000000000000000..d7dbc13eff672761d4ee98aaae6e5ff2b9e21e4d --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigure.zpt @@ -0,0 +1,98 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<!-- Clean Up --> +<tr> + <td>open</td> + <td>${base_url}/bar_module/ListBoxZuite_reset</td> + <td></td> +</tr> + +<tr> + <td>assertTextPresent</td> + <td>Reset Successfully.</td> + <td></td> +</tr> + +<tr> + <td>open</td> + <td>${base_url}/foo_module/FooModule_createObjects</td> + <td></td> +</tr> + +<tr> + <td>assertTextPresent</td> + <td>Created Successfully.</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" /> + + + +<!-- Initialize --> +<tr> + <td>open</td> + <td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/clear_query" /> + +<tal:block tal:define="header_configuration python: {'text': 'ID', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> +<tal:block tal:define="header_configuration python: {'text': 'Title', 'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> +<tal:block tal:define="header_configuration python: {'text': 'Quantity', 'index': 2}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_configure" /> + +<tal:block tal:define="configure_section_configuration python: {'index': 2}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/remove_configure_section" /> +</tal:block> +<tal:block tal:define="configure_section_configuration python: {'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/remove_configure_section" /> +</tal:block> +<tal:block tal:define="configure_section_configuration python: {'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/remove_configure_section" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_configure_section" /> +<tal:block tal:define="configure_section_configuration python: {'key': 'getQuantity', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_configure_section" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/add_new_configure_section" /> +<tal:block tal:define="configure_section_configuration python: {'key': 'id', 'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/set_configure_section" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_configure" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_listbox_loaded" /> + +<tal:block tal:define="header_configuration python: {'text': 'Quantity', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> + +<tal:block tal:define="header_configuration python: {'text': 'ID', 'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureButtonDisable.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureButtonDisable.xml new file mode 100644 index 0000000000000000000000000000000000000000..6de08bbf5f9f01699226c2858f6eb3f0b9580a2f --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureButtonDisable.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigureButtonDisable</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureButtonDisable.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureButtonDisable.zpt new file mode 100644 index 0000000000000000000000000000000000000000..cfbadeff0cf522acb0cd9c4bc0cdde3310b6f5c9 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureButtonDisable.zpt @@ -0,0 +1,70 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<!-- Clean Up --> +<tr> + <td>open</td> + <td>${base_url}/bar_module/ListBoxZuite_reset</td> + <td></td> +</tr> + +<tr> + <td>assertTextPresent</td> + <td>Reset Successfully.</td> + <td></td> +</tr> + +<tr> + <td>open</td> + <td>${base_url}/foo_module/FooModule_createObjects</td> + <td></td> +</tr> +<tr> + <td>assertTextPresent</td> + <td>Created Successfully.</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/wait_for_activities" /> + + +<!-- Initialize --> +<tr> + <td>open</td> + <td>${base_url}/web_site_module/renderjs_runner/#/foo_module/0</td> + <td></td> +</tr> + +<tr> + <td>waitForElementPresent</td> + <td>//a[@data-i18n='Previous']</td> + <td></td> +</tr> + +<!-- check configure button is disable --> +<tr> + <td>waitForElementPresent</td> + <td>//button[@data-i18n='Configure' and contains(@class, 'ui-disabled')]</td> + <td></td> +</tr> + +<tr> + <td>verifyElementPresent</td> + <td>//button[@data-i18n='Configure' and contains(@class, 'ui-disabled')]</td> + <td></td> +</tr> + + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureDefault.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureDefault.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6dc5cae69edcc0839cf4cb69170470b1b7ce08d --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureDefault.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigureDefault</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureDefault.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureDefault.zpt new file mode 100644 index 0000000000000000000000000000000000000000..a9edad345c4a856259f920f73bcf62bdb9caf7af --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureDefault.zpt @@ -0,0 +1,47 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<!-- Clean Up --> +<tr> + <td>open</td> + <td>${base_url}/bar_module/ListBoxZuite_reset</td> + <td></td> +</tr> +<tr> + <td>assertTextPresent</td> + <td>Reset Successfully.</td> + <td></td> +</tr> + +<!-- Initialize --> +<tr> + <td>open</td> + <td>${base_url}/web_site_module/renderjs_runner/#/foo_module?field_listbox_column_list%3Ajson=%5B%22title%22%5D&page=form&view=view</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block tal:define="header_configuration python: {'text': 'Title', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_configure" /> + +<tal:block tal:define="configure_section_configuration python: {'key': 'title', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_configure_section" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemReset.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemReset.xml new file mode 100644 index 0000000000000000000000000000000000000000..0175d9ed45503c0faa45d884ad27fa91353f0e65 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemReset.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigureItemReset</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemReset.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemReset.zpt new file mode 100644 index 0000000000000000000000000000000000000000..6696fd24db3a15742da537382f88783acc982635 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemReset.zpt @@ -0,0 +1,68 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<!-- Clean Up --> +<tr> + <td>open</td> + <td>${base_url}/bar_module/ListBoxZuite_reset</td> + <td></td> +</tr> +<tr> + <td>assertTextPresent</td> + <td>Reset Successfully.</td> + <td></td> +</tr> +<tr> + <td>open</td> + <td>${base_url}/foo_module/FooModule_createObjects</td> + <td></td> +</tr> + +<tr> + <td>assertTextPresent</td> + <td>Created Successfully.</td> + <td></td> +</tr> + +<!-- Initialize --> +<tr> + <td>open</td> + <td>${base_url}/web_site_module/renderjs_runner/#/foo_module?field_listbox_column_list%3Ajson=%5B%22title%22%5D&page=form&view=view</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_configure" /> +<tal:block tal:define="configure_section_configuration python: {'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/remove_configure_section" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_configure" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_listbox_loaded" /> + +<tal:block tal:define="header_configuration python: {'text': 'ID', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> +<tal:block tal:define="header_configuration python: {'text': 'Title', 'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> +<tal:block tal:define="header_configuration python: {'text': 'Quantity', 'index': 2}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> + + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemSelectable.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemSelectable.xml new file mode 100644 index 0000000000000000000000000000000000000000..cb67c68661dce3443ad9f26defd0e8294e0971f2 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemSelectable.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigureItemSelectable</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemSelectable.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemSelectable.zpt new file mode 100644 index 0000000000000000000000000000000000000000..b5b7694d0b3ad2b1f4d18021c4e97fed4c492370 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemSelectable.zpt @@ -0,0 +1,91 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<!-- Clean Up --> +<tr> + <td>open</td> + <td>${base_url}/bar_module/ListBoxZuite_reset</td> + <td></td> +</tr> +<tr> + <td>assertTextPresent</td> + <td>Reset Successfully.</td> + <td></td> +</tr> +<!-- Set all_columns property --> +<tr> + <td>open</td> + <td>${base_url}/foo_module/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_all_columns=creation_date%7CCreation%20Date%0AgetUid%7CUID%0Adelivery.quantity%7CQuantity</td> + <td></td> +</tr> +<tr> + <td>assertTextPresent</td> + <td>Set Successfully.</td> + <td></td> +</tr> + +<!-- Initialize --> +<tr> + <td>open</td> + <td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_configure" /> + +<!-- Check the selectable columns --> +<tr> + <td>assertElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[1][@value='id' and text()='ID']</td> + <td></td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[2][@value='title' and text()='Title']</td> + <td></td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[3][@value='getQuantity' and text()='Quantity']</td> + <td></td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[4][@value='creation_date' and text()='Creation Date']</td> + <td></td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[5][@value='getUid' and text()='UID']</td> + <td></td> +</tr> +<tr> + <td>assertElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[6][@value='delivery.quantity' and text()='Quantity']</td> + <td></td> +</tr> +<tr> + <td>assertElementNotPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]//option[7]</td> + <td></td> +</tr> +<tr> + <td>verifyValue</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td> + <td>id</td> +</tr> + + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemUnknownKey.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemUnknownKey.xml new file mode 100644 index 0000000000000000000000000000000000000000..f1eb7e6d10d00aaeb5792e15b93d9fd0062967c0 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemUnknownKey.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigureItemUnknownKey</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemUnknownKey.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemUnknownKey.zpt new file mode 100644 index 0000000000000000000000000000000000000000..41ca0007bc14584cf51a55ea9194321db7224d59 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testConfigureItemUnknownKey.zpt @@ -0,0 +1,59 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<!-- Clean Up --> +<tr> + <td>open</td> + <td>${base_url}/bar_module/ListBoxZuite_reset</td> + <td></td> +</tr> +<tr> + <td>assertTextPresent</td> + <td>Reset Successfully.</td> + <td></td> +</tr> + +<!-- Initialize --> +<tr> + <td>open</td> + <td>${base_url}/web_site_module/renderjs_runner/#/foo_module?field_listbox_column_list%3Ajson=%5B%22uid%22%5D&page=form&view=view</td> + <td></td> +</tr> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" /> + +<tal:block tal:define="header_configuration python: {'text': 'ID', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> +<tal:block tal:define="header_configuration python: {'text': 'Title', 'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> +<tal:block tal:define="header_configuration python: {'text': 'Quantity', 'index': 2}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_listbox_header" /> +</tal:block> + +<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/triggle_configure" /> + +<tal:block tal:define="configure_section_configuration python: {'key': 'id', 'index': 0}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_configure_section" /> +</tal:block> +<tal:block tal:define="configure_section_configuration python: {'key': 'title', 'index': 1}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_configure_section" /> +</tal:block> +<tal:block tal:define="configure_section_configuration python: {'key': 'getQuantity', 'index': 2}"> + <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/check_configure_section" /> +</tal:block> + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testConfigureEditor.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testConfigureEditor.xml new file mode 100644 index 0000000000000000000000000000000000000000..7906d17330a1783faa73d80d907aa53b3dbbd7c0 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testConfigureEditor.xml @@ -0,0 +1,58 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>testConfigureEditor</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testConfigureEditor.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testConfigureEditor.zpt new file mode 100644 index 0000000000000000000000000000000000000000..d2c72bf9f0dae6c5b1b4c5da8f55b0ed211ff539 --- /dev/null +++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_translate_zuite/testConfigureEditor.zpt @@ -0,0 +1,59 @@ +<html xmlns:tal="http://xml.zope.org/namespaces/tal" + xmlns:metal="http://xml.zope.org/namespaces/metal"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<title>Test RenderJS UI</title> +</head> +<body> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr> +</thead><tbody> +<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" /> + +<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> + <td></td> +</tr> + +<tr> + <td>waitForElementPresent</td> + <td>//button[text() = 'peizhi']</td> + <td></td> +</tr> + +<tr> + <td>click</td> + <td>//button[text() = 'peizhi']</td> + <td></td> +</tr> + +<tr> + <td>waitForElementPresent</td> + <td>//h1[text()='peizhibianjiqi']</td> + <td></td> +</tr> + + +<tr> + <td>waitForElementPresent</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td> + <td></td> +</tr> + + +<tr> + <td>verifySelectOptions</td> + <td>//div[@class='column_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td> + <td>ID,biaoti,Quantity,chuangjianshijian,xiugaishijian,shuoyouzhe</td> +</tr> + + + +</tbody></table> +</body> +</html> \ No newline at end of file diff --git a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Base_createBaseLanguage.py b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Base_createBaseLanguage.py index 37aee9235ef7ee9db46ad51cb19d6fa5a6a54950..1bbf447fb8807c6cd5a40a55112725d3f8d98162 100644 --- a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Base_createBaseLanguage.py +++ b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Base_createBaseLanguage.py @@ -68,7 +68,9 @@ param_dict = [ { 'message': 'Default', 'translation': 'moren', 'language': 'wo'}, { 'message': 'Creation Date', 'translation': 'chuangjianshijian', 'language': 'wo'}, { 'message': 'Modification Date', 'translation': 'xiugaishijian', 'language': 'wo'}, - { 'message': 'Owner', 'translation': 'shuoyouzhe', 'language': 'wo'} + { 'message': 'Owner', 'translation': 'shuoyouzhe', 'language': 'wo'}, + { 'message': 'Configure', 'translation': 'peizhi', 'language': 'wo'}, + { 'message': 'Configure Editor', 'translation': 'peizhibianjiqi', 'language': 'wo'} ] for tmp in param_dict: diff --git a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt index 704cfaaf67bf4fda07f70ab7c0aa05ae0952da82..fa0def1972e7c090df4d02c43cb3a28009e4bcee 100644 --- a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt +++ b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt @@ -698,4 +698,137 @@ </tr> </tal:block> + <tal:block metal:define-macro="triggle_configure"> + <tr> + <td colspan="3"><b>Open the configure panel</b></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_field_listbox.html')]//button[@data-i18n='Configure']</td> + <td></td> + </tr> + <tr> + <td>click</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_field_listbox.html')]//button[@data-i18n='Configure']</td> + <td></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_configure_editor.html')]//button[@class='plus ui-btn-c ui-override-theme ui-btn ui-icon-plus ui-btn-icon-left ui-corner-all']</td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="submit_configure"> + <tr> + <td colspan="3"><b>Submit the configure panel</b></td> + </tr> + <tr> + <td>click</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_configure_editor.html')]//button[@class="submit responsive ui-last-child ui-btn ui-btn-icon-left ui-icon-check"]</td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="check_listbox_header"> + <tr> + <td colspan="3"><b tal:content="python: 'Check the listbox header %(index)i' % header_configuration"></b></td> + </tr> + <tr> + <td>verifyText</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_field_listbox.html\')]//thead/tr/th[%i]' % (header_configuration['index'] + 1)"></td> + <td tal:content="python: header_configuration['text']"></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="remove_configure_section"> + <tr> + <td colspan="3"><b tal:content="python: 'Remove the configure section %(index)i' % configure_section_configuration"></b></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]' % (configure_section_configuration['index'] + 1)"></td> + <td></td> + </tr> + <tr> + <td>focus</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]//button' % (configure_section_configuration['index'] + 1)"></td> + <td></td> + </tr> + <tr> + <td>click</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]//button' % (configure_section_configuration['index'] + 1)"></td> + <td></td> + </tr> + <tr> + <td>waitForElementNotPresent</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]' % (configure_section_configuration['index'] + 1)"></td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="add_new_configure_section"> + <tr> + <td colspan="3"><b>Click on the + icon in the configure panel</b></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_configure_editor.html')]//button[@class='plus ui-btn-c ui-override-theme ui-btn ui-icon-plus ui-btn-icon-left ui-corner-all']</td> + <td></td> + </tr> + <tr> + <td>click</td> + <td>//div[contains(@data-gadget-url, 'gadget_erp5_configure_editor.html')]//button[@class='plus ui-btn-c ui-override-theme ui-btn ui-icon-plus ui-btn-icon-left ui-corner-all']</td> + <td></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="set_configure_section"> + <tr> + <td colspan="3"><b tal:content="python: 'Set the configure section %(index)i to %(key)s' % configure_section_configuration"></b></td> + </tr> + <tr> + <td>waitForElementPresent</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]//select' % (configure_section_configuration['index'] + 1)"></td> + <td></td> + </tr> + <tr> + <td>select</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]//select' % (configure_section_configuration['index'] + 1)"></td> + <td tal:content="python: 'value=%s' % configure_section_configuration['key']"></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + + <tal:block metal:define-macro="check_configure_section"> + <tr> + <td colspan="3"><b tal:content="python: 'Check the configure section %(index)i' % configure_section_configuration"></b></td> + </tr> + <tr> + <td>verifyValue</td> + <td tal:content="python: '//div[contains(@data-gadget-url, \'gadget_erp5_configure_editor.html\')]//div[@class=\'column_item_container ui-controlgroup ui-corner_all\']/div[%i]//select' % (configure_section_configuration['index'] + 1)"></td> + <td tal:content="python: configure_section_configuration['key']"></td> + </tr> + <tr> + <td colspan="3"><p></p></td> + </tr> + </tal:block> + </tal:block> \ No newline at end of file