Commit 21c51eb3 authored by Xiaowu Zhang's avatar Xiaowu Zhang

Merge branch 'master' into 'master'

listbox & clone document



See merge request !55
parents d7d02187 81eca52d
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ActionInformation" module="Products.CMFCore.ActionInformation"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>action</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>category</string> </key>
<value> <string>object_clone_action</string> </value>
</item>
<item>
<key> <string>condition</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>icon</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>clone_document</string> </value>
</item>
<item>
<key> <string>permissions</string> </key>
<value>
<tuple>
<string>View</string>
</tuple>
</value>
</item>
<item>
<key> <string>priority</string> </key>
<value> <float>102.0</float> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Clone Document</string> </value>
</item>
<item>
<key> <string>visible</string> </key>
<value> <int>1</int> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>string:${object_url}/Base_viewCloneDocumentDialog</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="Expression" module="Products.CMFCore.Expression"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>text</string> </key>
<value> <string>python: (getattr(object, \'getParentValue\', None) is not None) and (object.getPortalType() not in portal.getPortalModuleTypeList()) and (portal.Base_checkPermission(object.getParentValue().getRelativeUrl(), \'Add portal content\')) and (object.getPortalType() in object.getParentValue().getVisibleAllowedContentTypeList())</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ERP5 Form" module="erp5.portal_type"/>
</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/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_createCloneDocument</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>edit_order</string> </key>
<value>
<list>
<string>[]</string>
</list>
</value>
</item>
<item>
<key> <string>encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>enctype</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>group_list</string> </key>
<value>
<list>
<string>left</string>
</list>
</value>
</item>
<item>
<key> <string>groups</string> </key>
<value>
<dictionary>
<item>
<key> <string>left</string> </key>
<value>
<list>
<string>your_warning</string>
<string>your_portal_type</string>
<string>your_title</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>Base_viewCloneDocumentDialog</string> </value>
</item>
<item>
<key> <string>method</string> </key>
<value> <string>POST</string> </value>
</item>
<item>
<key> <string>name</string> </key>
<value> <string>Base_viewCloneDocumentDialog</string> </value>
</item>
<item>
<key> <string>pt</string> </key>
<value> <string>form_dialog</string> </value>
</item>
<item>
<key> <string>row_length</string> </key>
<value> <int>4</int> </value>
</item>
<item>
<key> <string>stored_encoding</string> </key>
<value> <string>UTF-8</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Clone Document</string> </value>
</item>
<item>
<key> <string>unicode_mode</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>update_action</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>update_action_title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -754,8 +754,9 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
# Try to embed the form in the result\n
if (view == view_action[\'id\']):\n
embedded_url = \'%s\' % view_action[\'url\']\n
\n
if (erp5_action_key in (view_action_type, "view", "workflow", "object_new_content_action")):\n
\n
if erp5_action_key in (view_action_type, "view", "workflow", "object_new_content_action", "object_clone_action"):\n
\n
erp5_action_list[-1][\'href\'] = url_template_dict["traverse_generator"] % {\n
"root_url": site_root.absolute_url(),\n
"script_id": script.id,\n
......
portal_actions | clone_document
portal_actions | create_a_document
\ No newline at end of file
......@@ -103,7 +103,7 @@
/*global window, rJS, RSVP, document, loopEventListener */\n
/*jslint indent: 2 */\n
(function (window, rJS, RSVP) {\n
(function (window, rJS, RSVP, document, loopEventListener) {\n
"use strict";\n
rJS(window)\n
.ready(function (gadget) {\n
......@@ -115,6 +115,9 @@
})\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\') || "";\n
})\n
.declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n
date,\n
......@@ -379,7 +382,7 @@
);\n
});\n
\n
}(window, rJS, RSVP));
}(window, rJS, RSVP, document, loopEventListener));
]]></string> </value>
</item>
......@@ -516,7 +519,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>943.49747.10334.23005</string> </value>
<value> <string>949.15487.9675.47530</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -534,7 +537,7 @@
</tuple>
<state>
<tuple>
<float>1434544511.89</float>
<float>1455899218.47</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -114,6 +114,9 @@
.declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyChange", "notifyChange")\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\');\n
})\n
.declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n
step = 0.00000001,\n
......@@ -319,7 +322,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>xiaowu</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -333,7 +336,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>940.63306.33653.13909</string> </value>
<value> <string>949.15478.31551.48810</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -351,7 +354,7 @@
</tuple>
<state>
<tuple>
<float>1423907635.25</float>
<float>1455899205.51</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -114,6 +114,9 @@
.declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyChange", "notifyChange")\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\');\n
})\n
.declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n
field_json = options.field_json || {};\n
......@@ -313,7 +316,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>xiaowu</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -327,7 +330,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>940.60759.64011.7748</string> </value>
<value> <string>949.15479.42024.21538</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -345,7 +348,7 @@
</tuple>
<state>
<tuple>
<float>1423754481.36</float>
<float>1455899193.71</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -239,7 +239,7 @@
<button data-rel="hide" data-i18n="Hide Rows" name="Hide" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-eye ui-btn-icon-left {{hide_class}}">Hide Rows</button>\n
</div>\n
</div>\n
<h1 data-i18n="0 items selected" class="ui-title ui-override-theme">0 items selected</h1>\n
<h1 data-i18n="{{title}}" class="ui-title ui-override-theme">{{title}}</h1>\n
<div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">\n
<div class="ui-controlgroup-controls">\n
<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</button>\n
......@@ -408,7 +408,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>949.1053.41653.819</string> </value>
<value> <string>949.10973.23622.18261</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -426,7 +426,7 @@
</tuple>
<state>
<tuple>
<float>1454957159.48</float>
<float>1455551894.43</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -109,9 +109,9 @@
/*jslint indent: 2, maxerr: 3, nomen: true */\n
/*global window, document, rJS, URI, RSVP, loopEventListener,\n
SimpleQuery, ComplexQuery, Query, Handlebars, console*/\n
SimpleQuery, ComplexQuery, Query, Handlebars, console, QueryFactory*/\n
(function (window, document, rJS, URI, RSVP, loopEventListener,\n
SimpleQuery, ComplexQuery, Query, Handlebars, console) {\n
SimpleQuery, ComplexQuery, Query, Handlebars, console, QueryFactory) {\n
"use strict";\n
var gadget_klass = rJS(window),\n
listbox_hidden_thead_source = gadget_klass.__template_element\n
......@@ -173,17 +173,45 @@
gadget.props.listbox_uid_dict = {};\n
gadget.props.cell_gadget_list = [];\n
function renderSubCell(element, sub_field_json) {\n
return gadget.getFieldTypeGadgetUrl(sub_field_json.type)\n
var options = {},\n
queue;\n
sub_field_json.editable = sub_field_json.editable && gadget.props.field_json.editable; // XXX \n
queue = gadget.getFieldTypeGadgetUrl(sub_field_json.type);\n
queue\n
.push(function (gadget_url) {\n
return gadget.declareGadget(gadget_url, {\n
element: element\n
});\n
if (sub_field_json.editable) {\n
options = {\n
element: element\n
};\n
}\n
return gadget.declareGadget(gadget_url, options);\n
})\n
.push(function (cell_gadget) {\n
gadget.props.cell_gadget_list.push(cell_gadget);\n
sub_field_json.editable = sub_field_json.editable && gadget.props.field_json.editable; // XXX \n
if (sub_field_json.editable) {\n
gadget.props.cell_gadget_list.push(cell_gadget);\n
} else {\n
if (cell_gadget.getTextContent) {\n
queue\n
.push(function () {\n
return cell_gadget.getTextContent();\n
})\n
.push(function (text_content) {\n
var text = document.createTextNode(text_content);\n
element.appendChild(text);\n
});\n
} else {\n
queue\n
.push(function () {\n
return cell_gadget.getElement();\n
})\n
.push(function (cell_element) {\n
element.appendChild(cell_element);\n
});\n
}\n
}\n
return cell_gadget.render({field_json: sub_field_json});\n
});\n
return queue;\n
}\n
for (i = 0; i < element_list.length; i += 1) {\n
column = element_list[i].getAttribute("column");\n
......@@ -248,7 +276,8 @@
function renderListbox(gadget) {\n
return gadget.translateHtml(listbox_template(\n
{\n
"hide_class": gadget.props.hide_class\n
"hide_class": gadget.props.hide_class,\n
"title": gadget.props.field_json.title\n
}\n
));\n
}\n
......@@ -497,7 +526,7 @@
value = result.data.rows[i].value[field_json.column_list[j][0]] || "";\n
tr_value.push({\n
"type": value.type,\n
"editable": value.editable,\n
"editable": value.editable && field_json.editable,\n
"href": tmp_url,\n
"text": value,\n
"line": i,\n
......@@ -630,7 +659,7 @@
thead_template,\n
tbody_template,\n
hide_button_html,\n
hide_elements;\n
hide_elements = [];\n
if (gadget.props.foot.colspan === gadget.props.foot.default_colspan) {\n
thead_template = listbox_show_thead_template;\n
tbody_template = listbox_show_tbody_template;\n
......@@ -640,30 +669,32 @@
//hide closed\n
//maybe submit\n
all_hide_elements = gadget.props.element.querySelectorAll(".hide_element");\n
hide_elements = gadget.props.element.querySelectorAll(".hide_element:checked");\n
//nothing selected, show all\n
if (hide_elements.length === 0) {\n
return gadget.redirect({\n
command: \'store_and_change\',\n
options: {\n
"extended_search": ""\n
}\n
});\n
for (i = 0; i < all_hide_elements.length; i += 1) {\n
if (!all_hide_elements[i].checked) {\n
hide_elements.push(all_hide_elements[i]);\n
}\n
}\n
\n
if (hide_elements.length < all_hide_elements.length) {\n
if (hide_elements.length) {\n
for (i = 0; i < hide_elements.length; i += 1) {\n
query_list.push(new SimpleQuery({\n
key: "catalog.uid",\n
type: "simple",\n
operator: "!=",\n
value: hide_elements[i].getAttribute("value")\n
}));\n
}\n
if (gadget.props.extended_search) {\n
search_query = QueryFactory.create(gadget.props.extended_search);\n
}\n
if (search_query) {\n
query_list.push(search_query);\n
}\n
search_query = new ComplexQuery({\n
operator: "OR",\n
operator: "AND",\n
query_list: query_list,\n
type: "complex"\n
});\n
\n
return gadget.redirect({\n
command: \'store_and_change\',\n
options: {\n
......@@ -703,7 +734,7 @@
});\n
\n
}(window, document, rJS, URI, RSVP, loopEventListener,\n
SimpleQuery, ComplexQuery, Query, Handlebars, console));
SimpleQuery, ComplexQuery, Query, Handlebars, console, QueryFactory));
]]></string> </value>
</item>
......@@ -840,7 +871,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>949.3576.234.9489</string> </value>
<value> <string>949.16516.37897.4249</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -858,7 +889,7 @@
</tuple>
<state>
<tuple>
<float>1455109014.98</float>
<float>1455899151.12</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -134,6 +134,10 @@
.declareAcquiredMethod("translateHtml", "translateHtml")\n
.declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareMethod(\'getTextContent\', function () {\n
var select = this.element.querySelector(\'select\');\n
return select.options[select.selectedIndex || 0].text;\n
})\n
.declareMethod(\'render\', function (options) {\n
var i,\n
template,\n
......@@ -357,7 +361,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>940.49457.43407.46148</string> </value>
<value> <string>949.15483.53582.15957</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -375,7 +379,7 @@
</tuple>
<state>
<tuple>
<float>1423135404.46</float>
<float>1455899167.96</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -137,6 +137,17 @@
{{/each}}\n
</ul>\n
\n
{{#if action}}\n
<section class="ui-content-header-plain">\n
<h3 class="ui-content-title ui-body-c" data-i18n="[last]{{section_i18n}}">\n
<span class="ui-icon ui-icon-custom ui-icon-random">&nbsp;</span>\n
{{section_title}}\n
</h3>\n
</section>\n
<ul data-role="listview" data-theme="c" data-inset="true" class="document-listview">\n
<li><a data-i18n="{{action.i18n}}" class="ui-body-inherit" href="{{action.link}}">{{action.title}}</a></li>\n
</ul>\n
{{/if}}\n
</script>\n
\n
</head>\n
......@@ -265,7 +276,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>super_sven</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -279,7 +290,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>939.43978.9403.31744</string> </value>
<value> <string>949.6674.56490.63948</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -297,8 +308,8 @@
</tuple>
<state>
<tuple>
<float>1419266049.54</float>
<string>GMT</string>
<float>1455548880.29</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
......@@ -148,6 +148,7 @@
var gadget = this,\n
erp5_document,\n
result_list,\n
action,\n
view_list;\n
\n
return gadget.jio_getAttachment(options.jio_key, "links")\n
......@@ -167,6 +168,17 @@
for (i = 0; i < view_list.length; i += 1) {\n
promise_list.push(gadget.getUrlFor({command: \'change\', options: {view: view_list[i].href, page: undefined, editable: undefined}}));\n
}\n
if (erp5_document._links.action_object_clone_action) {\n
view_list.push(erp5_document._links.action_object_clone_action);\n
promise_list.push(gadget.getUrlFor({\n
command: \'change\',\n
options: {\n
view: erp5_document._links.action_object_clone_action.href,\n
page: undefined,\n
editable: true\n
}\n
}));\n
}\n
return RSVP.all(promise_list);\n
})\n
.push(function (all_result) {\n
......@@ -182,11 +194,16 @@
i18n: view_list[i - 2].title\n
});\n
}\n
\n
if (erp5_document._links.action_object_clone_action) {\n
action = tab_list.pop();\n
}\n
return gadget.translateHtml(table_template({\n
definition_title: "Workflow Transitions",\n
documentlist: tab_list,\n
definition_i18n: "Workflow-Transitions"\n
definition_i18n: "Workflow-Transitions",\n
section_i18n: "Actions",\n
section_title: "Actions",\n
action: action\n
}));\n
})\n
.push(function (my_translated_html) {\n
......@@ -323,7 +340,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -337,7 +354,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>946.30039.19211.22562</string> </value>
<value> <string>949.12503.60091.29166</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -355,8 +372,8 @@
</tuple>
<state>
<tuple>
<float>1444985792.56</float>
<string>GMT</string>
<float>1455643788.16</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
......@@ -115,7 +115,9 @@
.declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyChange", "notifyChange")\n
\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\');\n
})\n
.declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n
field_json = options.field_json || {};\n
......@@ -317,7 +319,7 @@
</item>
<item>
<key> <string>actor</string> </key>
<value> <string>romain</string> </value>
<value> <string>zope</string> </value>
</item>
<item>
<key> <string>comment</string> </key>
......@@ -331,7 +333,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>937.64311.60842.27084</string> </value>
<value> <string>949.15479.27859.47018</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -349,8 +351,8 @@
</tuple>
<state>
<tuple>
<float>1412257626.39</float>
<string>GMT</string>
<float>1455899182.71</float>
<string>UTC</string>
</tuple>
</state>
</object>
......
......@@ -180,15 +180,15 @@
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td>waitForTextPresent</td>\n
<td>2022-12-21</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td>waitForTextPresent</td>\n
<td>2022-12-21</td>\n
<td></td>\n
</tr>\n
\n
</tbody></table>\n
......
......@@ -85,6 +85,65 @@
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/clear_query" />\n
\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Sort\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Sort\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//form[@class=\'plus\']</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
<tr>\n
<td>click</td>\n
<td>//form[@class=\'plus\']//button</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//div[@class=\'sort_item_container ui-controlgroup ui-corner_all\']/div[1]</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
\n
<tr>\n
<td>select</td>\n
<td>//div[@class=\'sort_item_container ui-controlgroup ui-corner_all\']/div[1]/div[2]//select</td>\n
<td>index=0</td>\n
</tr>\n
\n
\n
\n
<tr>\n
<td>click</td>\n
<td>//form[@class="submit"]//button</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>link=Title 0</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Hide Rows\']</td>\n
......@@ -159,10 +218,15 @@
\n
<tr>\n
<td>verifyElementNotPresent</td>\n
<td>//tbody/tr[2]</td>\n
<td>//input[@value=\'1\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyElementNotPresent</td>\n
<td>//input[@value=\'2\']</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
......@@ -217,27 +281,28 @@
\n
\n
<tr>\n
<td>verifyElementPresent</td>\n
<td>//tbody/tr/th</td>\n
<td>verifyElementNotPresent</td>\n
<td>//input[@value=\'0\']</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>verifyElementPresent</td>\n
<td>//tbody/tr[2]</td>\n
<td>verifyElementNotPresent</td>\n
<td>//input[@value=\'1\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyElementPresent</td>\n
<td>//tbody/tr[3]</td>\n
<td>verifyElementNotPresent</td>\n
<td>//input[@value=\'2\']</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
\n
\n
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/clear_query" />\n
\n
\n
......
<?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>_text</string> </key>
<value> <unicode encoding="cdata"><![CDATA[
<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
xmlns:metal="http://xml.zope.org/namespaces/metal">\n
<head>\n
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
<title>Test RenderJS UI</title>\n
</head>\n
<body>\n
<table cellpadding="1" cellspacing="1" border="1">\n
<thead>\n
<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>\n
</thead><tbody>\n
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />\n
\n
<!-- Clean Up -->\n
<tr>\n
<td>open</td>\n
<td>${base_url}/bar_module/ListBoxZuite_reset</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>assertTextPresent</td>\n
<td>Reset Successfully.</td>\n
<td></td>\n
</tr>\n
\n
<!-- Initialize -->\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n=\'Add\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>link=Add</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_your_portal_type\']</td>\n
<td>label=Foo</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n="Add"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="Add"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>link=Add</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_your_portal_type\']</td>\n
<td>label=Foo Line</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Save\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n=\'Back\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="Tabs"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n="View"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="View"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForTextPresent</td>\n
<td>1</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyTextPresent</td>\n
<td>1</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyElementNotPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
</tbody></table>\n
</body>\n
</html>
]]></unicode> </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>testListboxInNoEditableMode</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>
<?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>_text</string> </key>
<value> <unicode encoding="cdata"><![CDATA[
<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
xmlns:metal="http://xml.zope.org/namespaces/metal">\n
<head>\n
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
<title>Test RenderJS UI</title>\n
</head>\n
<body>\n
<table cellpadding="1" cellspacing="1" border="1">\n
<thead>\n
<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>\n
</thead><tbody>\n
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />\n
\n
<!-- Clean Up -->\n
<tr>\n
<td>open</td>\n
<td>${base_url}/bar_module/ListBoxZuite_reset</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>assertTextPresent</td>\n
<td>Reset Successfully.</td>\n
<td></td>\n
</tr>\n
\n
<!-- Initialize -->\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n=\'Add\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>link=Add</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_your_portal_type\']</td>\n
<td>label=Foo</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n="Add"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="Add"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>link=Add</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_your_portal_type\']</td>\n
<td>label=Foo Line</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Save\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n=\'Back\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>type</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td>2022-12-21</td>\n
</tr>\n
\n
\n
<tr>\n
<td>type</td>\n
<td>//input[@title="Short Title"]</td>\n
<td>test_clone</td>\n
</tr>\n
\n
\n
<tr>\n
<td>check</td>\n
<td>//input[@title="Frozen"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_my_local_title\']</td>\n
<td>label=First title</td>\n
</tr>\n
\n
\n
\n
<tr>\n
<td>type</td>\n
<td>//input[@name=\'field_my_foo_category_title\']</td>\n
<td>a1</td>\n
</tr>\n
\n
<tr>\n
<td>fireEvent</td>\n
<td>//input[@name=\'field_my_foo_category_title\']</td>\n
<td>input</td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//li[@data-relative-url=\'portal_categories/foo_category/a/a1\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//li[@data-relative-url=\'portal_categories/foo_category/a/a1\']</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/save" />\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="Tabs"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n="View"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="View"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//input[@title="Short Title"]</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@title="Short Title"]</td>\n
<td>test_clone</td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@name=\'field_my_foo_category_title\']</td>\n
<td>a1</td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@title=\'Frozen\']</td>\n
<td>on</td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//select[@name=\'field_my_local_title\']</td>\n
<td>First title</td>\n
</tr>\n
\n
<tr>\n
<td>storeValue</td>\n
<td>//input[@name=\'field_my_id\']</td>\n
<td>original_id</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n=\'Actions\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n=\'Clone Document\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n=\'Clone Document\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//input[@title="Short Title"]</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>verifyElementPresent</td>\n
<td>//button[@data-i18n="Save"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@title="Short Title"]</td>\n
<td>test_clone</td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@name=\'field_my_foo_category_title\']</td>\n
<td>a1</td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//input[@title=\'Frozen\']</td>\n
<td>on</td>\n
</tr>\n
\n
<tr>\n
<td>verifyValue</td>\n
<td>//select[@name=\'field_my_local_title\']</td>\n
<td>First title</td>\n
</tr>\n
\n
<tr>\n
<td>verifyNotValue</td>\n
<td>//input[@name=\'field_my_id\']</td>\n
<td>original_id</td>\n
</tr>\n
\n
\n
</tbody></table>\n
</body>\n
</html>
]]></unicode> </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>testCloneDocument</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>
......@@ -136,7 +136,7 @@ else:\n
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>clone=1, form_id=\'view\', web_mode=0, editable_mode=0, batch_mode=0</string> </value>
<value> <string>clone=1, form_id=\'view\', web_mode=0, editable_mode=0, batch_mode=0, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment