Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Iliya Manolov
erp5
Commits
9b46e1cb
Commit
9b46e1cb
authored
Nov 30, 2015
by
Xiaowu Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_web_renderjs_ui: add search editor to make query
parent
577d848d
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
3705 additions
and
46 deletions
+3705
-46
bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.xml
...tal_skins/erp5_hal_json_style/ERP5Document_getHateoas.xml
+16
-10
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
...TemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
+5
-3
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
.../PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
+10
-6
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml
...hTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml
+18
-5
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml
...mplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml
+21
-2
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml
...eItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml
+8
-2
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml
...tem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml
+446
-0
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
...eItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
+705
-0
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.xml
...Item/web_page_module/rjs_gadget_erp5_searchfield_html.xml
+24
-15
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml
...teItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml
+29
-3
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.xml
...tal_tests/renderjs_ui_listbox_zuite/testComplexFilter.xml
+424
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.xml
...tem/portal_tests/renderjs_ui_listbox_zuite/testFilter.xml
+382
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.xml
...sts/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.xml
+436
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.xml
..._tests/renderjs_ui_listbox_zuite/testFilterItemDelete.xml
+335
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.xml
...l_tests/renderjs_ui_listbox_zuite/testFilterWithPager.xml
+513
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.xml
.../renderjs_ui_listbox_zuite/testFilterWithPreviousNext.xml
+333
-0
No files found.
bt5/erp5_hal_json_style/SkinTemplateItem/portal_skins/erp5_hal_json_style/ERP5Document_getHateoas.xml
View file @
9b46e1cb
...
...
@@ -321,21 +321,27 @@ def renderField(traversed_document, field, form_relative_url, value=None, meta_t
editable_column_list = field.get_value(\'editable_columns\')\n
\n
sort_column_list_tmp = field.get_value(\'sort_columns\')\n
search_column_list = field.get_value(\'search_columns\')\n
search_column_list
_tmp
= field.get_value(\'search_columns\')\n
sort_column_list = []\n
\n
#only get sortable column which is already displayed in listbox
\n
#
in legacy erp5 interface, all sortable columns are displayed
\n
search_column_list = []
\n
\n
#
only get sortable&searchable column which is already displayed in listbox
\n
#see https://git.erp5.org/gitweb/erp5.git/blob/HEAD:/product/ERP5Form/ListBox.py?js=1#l1004\n
if sort_column_list_tmp:\n
sort_column_list = sort_column_list_tmp\n
elif search_column_list:\n
sort_column_list = search_column_list\n
\n
if search_column_list_tmp:\n
search_column_list = search_column_list_tmp\n
else:\n
#find which column can be sorted\n
for grain in column_list:\n
if sql_catalog.isValidColumn(grain[0]):\n
sort_column_list.append(grain)\n
search_column_list.append(grain)\n
\n
\n
if sort_column_list_tmp:\n
sort_column_list = sort_column_list_tmp\n
else:\n
sort_column_list = search_column_list\n
\n
\n
\n
\n
# XXX \n
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
View file @
9b46e1cb
...
...
@@ -102,7 +102,7 @@
<value>
<string
encoding=
"cdata"
>
<![CDATA[
CACHE MANIFEST\n
# generated on
Fri, 25
Nov 2015 10:00:00 +0000\n
# generated on
Mon, 30
Nov 2015 10:00:00 +0000\n
# XXX + fonts\n
# images/ajax-loader.gif\n
CACHE:\n
...
...
@@ -190,6 +190,8 @@ gadget_erp5_pt_form_view_editable.html\n
gadget_erp5_pt_form_view_editable.js\n
gadget_erp5_router.html\n
gadget_erp5_router.js\n
gadget_erp5_search_editor.html\n
gadget_erp5_search_editor.js\n
gadget_erp5_searchfield.html\n
gadget_erp5_searchfield.js\n
gadget_erp5_sort_editor.html\n
...
...
@@ -340,7 +342,7 @@ NETWORK:\n
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
947.22
112.7095.5768
</string>
</value>
<value>
<string>
947.22
631.16141.50329
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -358,7 +360,7 @@ NETWORK:\n
</tuple>
<state>
<tuple>
<float>
1448
442318.38
</float>
<float>
1448
650222.45
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
View file @
9b46e1cb
...
...
@@ -1666,15 +1666,19 @@ html .ui-panel .ui-content-section .ui-controlgroup-controls > div:last-of-type
border-top-right-radius: 0;\n
border-top-color: transparent;\n
}\n
\n
html .ui-panel .ui-content-section {\n
margin-top: 0;\n
}\n
/* XXX: not generic!!! */ \n
/* side by side buttons (normally this should be done by postion:abs, but requires another wrapper */\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div:last-of-type {\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div
.ui-select
:last-of-type {\n
display: inline-block;\n
vertical-align: top;\n
width: 81.25%; /* BAD! use wrapper
&
position */\n
padding: 0;\n
}\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div:last-of-type ~ button {\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div
.ui-select
:last-of-type ~ button {\n
vertical-align: top;\n
display: inline-block;\n
margin-left: -4px; /* to remove space between elements */\n
...
...
@@ -1684,12 +1688,12 @@ html .ui-panel .ui-content-section .ui-controlgroup-controls > div:last-of-type
border-top-color: transparent;\n
padding-bottom: .75em;\n
}\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div:last-of-type .ui-btn {\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div
.ui-select
:last-of-type .ui-btn {\n
-webkit-border-bottom-right-radius: 0;\n
border-bottom-right-radius: 0;\n
}\n
/* element padding */\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div .ui-btn {\n
html .ui-panel .ui-content-section .ui-controlgroup-controls > div
.ui-select
.ui-btn {\n
padding: 4px 0;\n
}\n
/* nasty padding */ \n
...
...
@@ -5198,7 +5202,7 @@ html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after {\n
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
947.
4015.5592.23057
</string>
</value>
<value>
<string>
947.
25592.30077.20258
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -5216,7 +5220,7 @@ html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after {\n
</tuple>
<state>
<tuple>
<float>
144
7356677.5
</float>
<float>
144
8651090.87
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_form_js.xml
View file @
9b46e1cb
...
...
@@ -281,6 +281,12 @@
});\n
})\n
.push(function (field_gadget) {\n
//XXXXX Hardcoded to get one listbox gadget\n
//pt form list gadget will get this listbox\'s info\n
//then pass to search field gadget\n
if (field_url === "gadget_erp5_field_listbox.html") {\n
form_gadget.props.listbox_gadget = field_gadget;\n
}\n
form_gadget.props.gadget_list.push(field_gadget);\n
var suboptions = options[renderered_field.key] || suboption_dict;\n
suboptions.field_json = renderered_field;\n
...
...
@@ -317,7 +323,14 @@
});\n
})\n
\n
\n
.declareMethod("getListboxInfo",
function
()
{\n
//XXXXX
get
listbox
gadget\'s
info\n
var
gadget =
this;\n
if
(gadget.props.listbox_gadget)
{\n
return
gadget.props.listbox_gadget.getListboxInfo();\n
}\n
return
{};\n
})\n
.declareMethod("getContent",
function
()
{\n
var
form_gadget =
this,\n
k,\n
...
...
@@ -500,7 +513,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>
...
...
@@ -514,7 +527,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
94
4.22467.53128.26641
</string>
</value>
<value>
<string>
94
7.29788.20746.53162
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -532,8 +545,8 @@
</tuple>
<state>
<tuple>
<float>
14
36753892.3
6
</float>
<string>
GMT+2
</string>
<float>
14
48902825.0
6
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml
View file @
9b46e1cb
...
...
@@ -178,6 +178,18 @@
return false;\n
});\n
}\n
\n
if (field_json.search_column_list.length) {\n
field_json.search_column_list = field_json.search_column_list.filter(function (n) {\n
for (i = 0; i < field_json.column_list.length; i += 1) {\n
if (field_json.column_list[i][0] === n[0] && field_json.column_list[i][1] === n[1]) {\n
return true;\n
}\n
}\n
return false;\n
});\n
}\n
field_json.search_column_list.push(["searchable_text", "Searchable Text"]);\n
thead.appendChild(tr);\n
return new RSVP.Queue()\n
.push(function () {\n
...
...
@@ -217,6 +229,13 @@
document_table.innerHTML = my_translate_html;\n
});\n
})\n
.declareMethod(\'getListboxInfo\', function () {\n
//XXXXX search column list is used for search editor to\n
//construct search panel\n
//hardcoded begin_from key to define search position\n
return { "search_column_list": this.props.field_json.search_column_list,\n
"begin_from": this.props.field_json.key + "_begin_from"};\n
})\n
\n
//////////////////////////////////////////////\n
// render the listbox in an asynchronous way\n
...
...
@@ -661,7 +680,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
947.2
0698.10371.47530
</string>
</value>
<value>
<string>
947.2
9639.47524.59016
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -679,7 +698,7 @@
</tuple>
<state>
<tuple>
<float>
1448
443763.96
</float>
<float>
1448
903288.34
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml
View file @
9b46e1cb
...
...
@@ -128,6 +128,12 @@
.declareAcquiredMethod("getUrlFor", "getUrlFor")\n
.declareAcquiredMethod("redirect", "redirect")\n
.declareAcquiredMethod("getUrlParameter", "getUrlParameter")\n
.allowPublicAcquisition("getListboxInfo", function () {\n
return this.getDeclaredGadget("erp5_form")\n
.push(function(form_gadget) {\n
return form_gadget.getListboxInfo();\n
});\n
})\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
...
...
@@ -350,7 +356,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
947.2
2536.41002.36352
</string>
</value>
<value>
<string>
947.2
5536.23903.53674
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -368,7 +374,7 @@
</tuple>
<state>
<tuple>
<float>
1448
469230.79
</float>
<float>
1448
889486.07
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml
0 → 100644
View file @
9b46e1cb
<?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_search_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_searcheditor_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>
text_content
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
<!DOCTYPE html>
\n
<html>
\n
<head>
\n
<meta
charset=
"utf-8"
/>
\n
<meta
name=
"viewport"
content=
"width=device-width, user-scalable=no"
/>
\n
<title>
ERP5 Sort Editor
</title>
\n
\n
<!-- renderjs -->
\n
<script
src=
"rsvp.js"
></script>
\n
<script
src=
"renderjs.js"
></script>
\n
<script
src=
"handlebars.js"
></script>
\n
\n
<!-- custom script -->
\n
<script
src=
"gadget_erp5_search_editor.js"
></script>
\n
\n
\n
<script
id=
"options-template"
type=
"text/x-handlebars-template"
>
\n
<select
data-iconpos=
"left"
>
\n
{{#each option}}\n
<option
value=
"{{value}}"
data-i18n=
"{{text}}"
>
{{text}}
</option>
\n
{{/each}}\n
</select>
\n
</script>
\n
\n
\n
\n
<script
id=
"filter-item-template"
type=
"text/x-handlebars-template"
>
\n
<div
class=
"filter_item {{class_value}}"
>
\n
<select
data-iconpos=
"left"
>
\n
{{#each option}}\n
{{#equal value selected_option}}\n
<option
selected=
"selected"
data-i18n=
"{{text}}"
value=
"{{value}}"
>
{{text}}
</option>
\n
{{else}}\n
<option
value=
"{{value}}"
data-i18n=
"{{text}}"
>
{{text}}
</option>
\n
{{/equal}}\n
{{/each}}\n
</select>
\n
<select
data-iconpos=
"left"
>
\n
{{#each operator_option}}\n
{{#equal value selected_option}}\n
<option
selected=
"selected"
data-i18n=
"{{text}}"
value=
"{{value}}"
>
{{text}}
</option>
\n
{{else}}\n
<option
value=
"{{value}}"
data-i18n=
"{{text}}"
>
{{text}}
</option>
\n
{{/equal}}\n
{{/each}}\n
</select>
\n
<div
class=
"ui-controlgroup-controls"
>
\n
<input
type=
"{{input_type}}"
value=
"{{input_value}}"
></input>
\n
<button
type=
"submit"
class=
"ui-icon ui-btn ui-btn-inline ui-icon-delete ui-icon-shadow"
></button>
\n
</div>
\n
</div>
\n
\n
</script>
\n
\n
\n
\n
\n
\n
\n
<script
id=
"filter-template"
type=
"text/x-handlebars-template"
>
\n
<div
class=
"ui-panel-inner"
>
\n
<div
data-role=
"header"
role=
"banner"
class=
"ui-header ui-bar-inherit"
>
\n
<div
class=
"ui-controlgroup ui-controlgroup-horizontal ui-btn-left"
>
\n
<div
class=
"ui-controlgroup-controls"
>
\n
<form
class=
"delete"
>
\n
<button
data-rel=
"close"
type=
"submit"
data-i18n=
"Close"
class=
"close responsive ui-first-child ui-btn ui-btn-icon-left ui-icon-times"
>
Close
</button>
\n
</form>
\n
</div>
\n
</div>
\n
\n
<h1
class=
"ui-title"
role=
"heading"
data-i18n=
"Filter Editor"
aria-level=
"1"
>
Filter Editor
</h1>
\n
<div
class=
"ui-controlgroup ui-controlgroup-horizontal ui-btn-right"
>
\n
<div
class=
"ui-controlgroup-controls"
>
\n
<form
class=
"submit"
>
\n
<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>
\n
</form>
\n
</div>
\n
</div>
\n
</div>
\n
\n
\n
<section
class=
"ui-body-c ui-content-section"
>
\n
<fieldset
class=
"ui-controlgroup ui-corner-all"
>
\n
<div
class=
"ui-controlgroup-controls"
>
\n
<div
class=
"ui-radio"
>
\n
<label
class=
"ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-on"
data-i18n=
"All criterions(AND)"
>
All criterions(AND)
</label>
\n
<input
type=
"radio"
value=
"on"
checked=
"checked"
name=
"heard_about"
id=
"heard_about_a"
class=
"and checkboxradio"
data-cacheval=
"false"
data-enhanced=
"true"
>
\n
</div>
\n
<div
class=
"ui-radio"
>
\n
<label
class=
"ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off"
data-i18n=
"At lease one(OR)"
>
At lease one(OR)
</label>
\n
<input
type=
"radio"
value=
"Off"
name=
"heard_about"
id=
"heard_about_b"
class=
"or checkboxradio"
data-cacheval=
"true"
data-enhanced=
"true"
>
\n
</div>
\n
</div>
\n
\n
</fieldset>
\n
\n
<div
class=
"filter_item_container"
>
\n
</div>
\n
<form
class=
"plus"
>
\n
<button
type=
"submit"
class=
"plus ui-btn-c ui-override-theme ui-btn ui-icon-plus ui-btn-icon-left ui-corner-all"
>
Add Criteria
</button>
\n
</form>
\n
</section>
\n
</div>
\n
</script>
\n
\n
\n
</head>
\n
<body>
\n
<form
class=
"filter_editor"
>
\n
<div
class=
"container"
></div>
\n
</form>
\n
</body>
\n
</html>
]]>
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Gadget Erp5 Search 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>
1447863312.73
</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>
947.25389.31975.29218
</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>
1448651417.88
</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>
<none/>
</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>
empty
</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>
1447863285.72
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
0 → 100644
View file @
9b46e1cb
<?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_search_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_searcheditor_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>
text_content
</string>
</key>
<value>
<string
encoding=
"cdata"
>
<![CDATA[
/*jslint indent: 2, maxerr: 3, maxlen: 100, nomen: true */\n
/*global window, document, rJS, RSVP, Handlebars, $, loopEventListener,\n
QueryFactory, SimpleQuery, ComplexQuery, Query*/\n
(function (window, document, rJS, RSVP, Handlebars, $, loopEventListener,\n
QueryFactory, SimpleQuery, ComplexQuery, Query) {\n
"use strict";\n
var gadget_klass = rJS(window),\n
filter_item_source = gadget_klass.__template_element\n
.getElementById("filter-item-template")\n
.innerHTML,\n
filter_item_template = Handlebars.compile(filter_item_source),\n
filter_source = gadget_klass.__template_element\n
.getElementById("filter-template")\n
.innerHTML,\n
filter_template = Handlebars.compile(filter_source),\n
\n
options_source = gadget_klass.__template_element\n
.getElementById("options-template")\n
.innerHTML,\n
options_template = Handlebars.compile(options_source);\n
\n
Handlebars.registerHelper(\'equal\', function (left_value,\n
right_value, options) {\n
if (arguments.length < 3) {\n
throw new Error("Handlebars Helper equal needs 2 parameters");\n
}\n
if (left_value !== right_value) {\n
return options.inverse(this);\n
}\n
return options.fn(this);\n
});\n
\n
//XXXXX\n
//define input\'s type according to column\'s value\n
//the way to determiner is not generic\n
function isNumericComparison(value) {\n
return value.indexOf(\'date\') !== -1 ||\n
value.indexOf(\'quantity\') !== -1 ||\n
value.indexOf(\'price\') !== -1;\n
}\n
\n
function createOptionsTemplate(gadget, value) {\n
var option = [],\n
tmp,\n
i;\n
if (value !== "searchable_text") {\n
if (isNumericComparison(value)) {\n
tmp = gadget.props.numeric;\n
} else {\n
tmp = gadget.props.other;\n
}\n
} else {\n
tmp = gadget.props.default;\n
}\n
for (i = 0; i < tmp.length; i += 1) {\n
option.push({\n
"text": tmp[i][0],\n
"value": tmp[i][1]\n
});\n
}\n
return gadget.translateHtml(options_template({option: option}));\n
}\n
\n
\n
\n
\n
function createFilterItemTemplate(gadget, class_value, filter_item) {\n
var column_list = gadget.props.search_column_list,\n
option = [],\n
tmp,\n
operator_option = [],\n
input_type = "text",\n
i;\n
\n
if (filter_item) {\n
if (isNumericComparison(filter_item.key)) {\n
tmp = gadget.props.numeric;\n
if (filter_item.key.indexOf("date") !== -1) {\n
input_type = "date";\n
} else {\n
input_type = "number";\n
}\n
} else {\n
tmp = gadget.props.other;\n
}\n
} else {\n
tmp = gadget.props.default;\n
filter_item = {};\n
}\n
\n
for (i = 0; i < tmp.length; i += 1) {\n
operator_option.push({\n
"text": tmp[i][0],\n
"value": tmp[i][1],\n
"selected_option": filter_item.operator\n
});\n
}\n
\n
for (i = 0; i < column_list.length; i += 1) {\n
option.push({\n
"text": column_list[i][1],\n
"value": column_list[i][0],\n
"selected_option": filter_item.key || "searchable_text"\n
});\n
}\n
return gadget.translateHtml(filter_item_template({\n
option: option,\n
operator_option: operator_option,\n
class_value: class_value,\n
input_value: filter_item.value,\n
input_type: input_type\n
}));\n
}\n
\n
\n
function listenToSelect(gadget, class_value) {\n
var list = [],\n
i,\n
filter_item_list =\n
gadget.props.element.querySelectorAll("." + class_value);\n
function createFunction(i) {\n
var select_list = filter_item_list[i].querySelectorAll("select"),\n
input = filter_item_list[i].querySelector("input");\n
return loopEventListener(\n
select_list[0],\n
"change",\n
false,\n
function (event) {\n
return new RSVP.Queue()\n
.push(function () {\n
return createOptionsTemplate(gadget, event.target.value);\n
})\n
.push(function (innerHTML) {\n
select_list[1].innerHTML = innerHTML;\n
$(select_list[1]).selectmenu(\'refresh\');\n
if (isNumericComparison(event.target.value)) {\n
if (event.target.value.indexOf("date") !== -1) {\n
input.setAttribute("type", "date");\n
} else {\n
input.setAttribute("type", "number");\n
}\n
} else {\n
input.setAttribute("type", "text");\n
}\n
});\n
}\n
);\n
}\n
for (i = 0; i < filter_item_list.length; i += 1) {\n
list.push(createFunction(i));\n
}\n
return RSVP.all(list);\n
}\n
\n
\n
\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
// ready\n
/////////////////////////////////////////////////////////////////\n
// Init local properties\n
.ready(function (g) {\n
g.props = {};\n
})\n
.ready(function (g) {\n
return g.getElement()\n
.push(function (element) {\n
g.props.element = element;\n
g.props.numeric = [["Equals To", "="], ["Greater Than", ">
"],\n
["Less Than", "
<
"], ["Not Greater Than", "
<
="],\n
["Not Less Than", ">="]];\n
g.props.other = [["Exact Match", "exacte_match"],\n
["keyword", "keyword"]];\n
g.props.default = [["Contain", "Contain"]];\n
});\n
})\n
\n
\n
\n
//////////////////////////////////////////////\n
// acquired method\n
//////////////////////////////////////////////\n
.declareAcquiredMethod("translateHtml", "translateHtml")\n
.declareAcquiredMethod("redirect", "redirect")\n
.declareAcquiredMethod("trigger", "trigger")\n
//////////////////////////////////////////////\n
// initialize the gadget content\n
//////////////////////////////////////////////\n
.declareMethod(\'render\', function (options) {\n
var gadget = this;\n
gadget.props.search_column_list = options.search_column_list;\n
gadget.props.begin_from = options.begin_from;\n
\n
gadget.props.extended_search = options.extended_search;\n
\n
return new RSVP.Queue()\n
.push(function () {\n
var tmp = filter_template();\n
return gadget.translateHtml(tmp);\n
})\n
.push(function (translated_html) {\n
var tmp = document.createElement("div");\n
tmp.innerHTML = translated_html;\n
gadget.props.element.querySelector(".container").appendChild(tmp);\n
});\n
})\n
//////////////////////////////////////////////\n
.declareService(function () {\n
var gadget = this,\n
i,\n
list = [],\n
or = gadget.props.element.querySelector(".or"),\n
and = gadget.props.element.querySelector(".and"),\n
container = gadget.props.element.querySelector(".filter_item_container"),\n
query_list;\n
if (gadget.props.extended_search) {\n
//string to query\n
query_list = QueryFactory.create(gadget.props.extended_search);\n
if (query_list.operator === "OR") {\n
or.checked = true;\n
and.checked = false;\n
or.parentElement.children[0].setAttribute("class",\n
"ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-on");\n
and.parentElement.children[0].setAttribute("class",\n
"ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off");\n
}\n
\n
query_list = query_list.query_list || [query_list];\n
for (i = 0; i
< query_list.length
;
i
+=
1)
{\n
list.push(createFilterItemTemplate(gadget,
"auto",
query_list[i]));\n
}\n
return
RSVP.Queue()\n
.push(function
()
{\n
return
RSVP.all(list);\n
})\n
.push(function
(all_result)
{\n
var
innerHTML =
""
,\n
select_list;\n
for
(
i =
0;
i
<
all_result.length;
i
+=
1)
{\n
innerHTML
+=
all_result[i];\n
}\n
container.innerHTML =
innerHTML;\n
select_list =
container.querySelectorAll("select");\n
for
(
i =
0;
i
<
select_list.length;
i
+=
1)
{\n
$(select_list[i]).selectmenu();\n
}\n
return
listenToSelect(gadget,
"auto");\n
});\n
}\n
})\n
.declareService(function
()
{\n
var
gadget =
this,\n
container =
gadget.props.element.querySelector(".filter_item_container");\n
return
loopEventListener(\n
gadget.props.element.querySelector(".filter_editor"),\n
"submit",\n
false,\n
function
()
{\n
var
focused =
document.activeElement;\n
if
(
focused.nodeName =
==
"BUTTON")
{\n
container.removeChild(focused.parentElement.parentElement);\n
}\n
}\n
);\n
})\n
.declareService(function
()
{\n
var
gadget =
this;\n
return
loopEventListener(\n
gadget.props.element.querySelector(".submit"),\n
"submit",\n
false,\n
function
()
{\n
var
i,\n
simple_operator,\n
query,\n
key,\n
select_list,\n
simple_query_list =
[],\n
complex_query,\n
select,\n
value,\n
options =
{},\n
filter_item_list =
gadget.props.element.querySelectorAll(".filter_item"),\n
and =
gadget.props.element.querySelector(".and");\n
for
(
i =
0;
i
<
filter_item_list.length;
i
+=
1)
{\n
select_list =
filter_item_list[i].querySelectorAll("select");\n
value =
filter_item_list[i].querySelector("input").value;\n
simple_operator =
""
;\n
select =
select_list[1][select_list[1].selectedIndex].value;\n
if
(
select =
==
"keyword")
{\n
value =
"%"
+
value
+
"%";\n
}
else
if
(["",
"
>
", "
<
", "
<
=", ">="].indexOf(select) !== -1) {\n
simple_operator = select;\n
}\n
\n
if (select_list[0][select_list[0].selectedIndex].value === "searchable_text") {\n
key = "";\n
} else {\n
key = select_list[0][select_list[0].selectedIndex].value;\n
}\n
\n
simple_query_list.push(new SimpleQuery(\n
{\n
key: key,\n
operator: simple_operator,\n
type: "simple",\n
value: value\n
}\n
));\n
}\n
\n
if (simple_query_list.length > 0) {\n
complex_query = new ComplexQuery({\n
operator: and.checked ? "AND" : "OR",\n
query_list: simple_query_list,\n
type: "complex"\n
});\n
//query to string\n
query = Query.objectToSearchText(complex_query);\n
} else {\n
query = "";\n
}\n
options.extended_search = query;\n
options[gadget.props.begin_from] = undefined;\n
return gadget.redirect(\n
{\n
command: \'store_and_change\',\n
options : options\n
}\n
);\n
}\n
);\n
})\n
.declareService(function () {\n
var gadget = this,\n
class_value = "add_after";\n
return loopEventListener(\n
gadget.props.element.querySelector(".plus"),\n
"submit",\n
false,\n
function () {\n
return new RSVP.Queue()\n
.push(function () {\n
return createFilterItemTemplate(gadget, class_value);\n
})\n
.push(function (template) {\n
var tmp = document.createElement("div"),\n
container = gadget.props.element.querySelector(".filter_item_container"),\n
select_list,\n
i;\n
tmp.innerHTML = template;\n
select_list = tmp.querySelectorAll("select");\n
for (i = 0; i
< select_list.length
;
i
+=
1)
{\n
$(select_list[i]).selectmenu();\n
}\n
container.appendChild(tmp.querySelector("div"));\n
return
listenToSelect(gadget,
class_value);\n
});\n
}\n
);\n
})\n
.declareService(function
()
{\n
var
gadget =
this;\n
return
loopEventListener(\n
gadget.props.element.querySelector(".delete"),\n
"submit",\n
false,\n
function
()
{\n
return
gadget.trigger();\n
}\n
);\n
});\n
\n
}(window,
document,
rJS,
RSVP,
Handlebars,
$,
loopEventListener,\n
QueryFactory,
SimpleQuery,
ComplexQuery,
Query));
]]
></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Gadget Erp5 Search 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>
1447863363.66
</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>
947.29484.5127.28433
</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>
1448903443.33
</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>
<none/>
</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>
empty
</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>
1447863335.99
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
</value>
</item>
</dictionary>
</list>
</tuple>
</pickle>
</record>
</ZopeData>
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.xml
View file @
9b46e1cb
...
...
@@ -120,21 +120,30 @@
<!-- custom script -->
\n
<script
src=
"gadget_erp5_searchfield.js"
></script>
\n
\n
<!-- XXX widget-status is bad! -->
\n
<script
id=
"panel-template"
type=
"text/x-handlebars-template"
>
\n
<div
class=
"center"
>
\n
<div
class=
"ui-field-contain"
>
\n
<div
class=
"ui-input-text ui-body-{{widget_theme}} ui-corner-all ui-shadow-inset ui-input-has-clear {{widget_status_class}}"
>
\n
<input
type=
"text"
data-enhanced=
"true"
value=
"{{widget_value}}"
name=
"search"
{{widget_status_attribute}}
/>
\n
<div
class=
"ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext"
data-i18n=
"[node]header-submit"
>
\n
Submit
<input
data-enhanced=
"true"
type=
"submit"
data-i18n=
"[value]header-submit"
value=
"Submit"
{{widget_status_attribute}}
/>
\n
<script
id=
"panel-template"
type=
"text/x-handlebars-template"
>
\n
<div
class=
"field_container"
>
\n
<div
class=
"ui-field-contain"
>
\n
<div
class=
"bottom"
>
\n
<div
class=
"ui-input-text ui-body-{{theme}} ui-input-has-icon ui-corner-all ui-shadow-inset ui-input-has-clear"
>
\n
<form
class=
"save_form"
>
\n
<input
type=
"text"
data-enhanced=
"true"
value=
"{{widget_value}}"
name=
"search"
{{widget_status_attribute}}
>
\n
<div
class=
"ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-search ui-btn-icon-notext"
data-i18n=
"[node]{{search_i18n}}"
>
\n
{{search_i18n}}
<input
tabindex=
"-1"
data-role=
"button"
data-enhanced=
"true"
type=
"submit"
data-i18n=
"[value]{{search_i18n}}"
value=
" "
/>
\n
</div>
\n
</form>
\n
</div>
\n
<div
class=
"ui-shadow-inset ui-btn ui-btn-inline ui-corner-all ui-btn-{{theme}} ui-btn-icon-notext ui-icon-filter ui-override-theme "
>
\n
<form
class=
"filter_form"
>
\n
<div
class=
"ui-input-btn"
>
\n
<input
data-role=
"button"
data-enhanced=
"true"
type=
"submit"
data-i18n=
"[value]"
value=
" "
>
\n
</div>
\n
</form>
\n
</div>
\n
<a
href=
"#"
data-i18n=
"filter"
class=
"ui-btn ui-btn-{{widget_theme}} ui-btn-icon-notext ui-icon-filter ui-override-theme ui-disabled"
>
Filters
</a>
\n
</div>
\n
</div>
\n
</div>
\n
</div>
\n
</script>
\n
\n
\n
</head>
\n
<body>
\n
<div
class=
"save_form document_form"
></div>
\n
...
...
@@ -262,7 +271,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>
...
...
@@ -276,7 +285,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
94
5.50880.23560.7150
</string>
</value>
<value>
<string>
94
7.12457.22504.55808
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -294,8 +303,8 @@
</tuple>
<state>
<tuple>
<float>
144
2998364.27
</float>
<string>
GMT
</string>
<float>
144
7863048.11
</float>
<string>
UTC
</string>
</tuple>
</state>
</object>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml
View file @
9b46e1cb
...
...
@@ -135,6 +135,8 @@
// acquired method\n
//////////////////////////////////////////////\n
.declareAcquiredMethod("translateHtml", "translateHtml")\n
.declareAcquiredMethod("renderEditorPanel", "renderEditorPanel")\n
.declareAcquiredMethod("getListboxInfo", "getListboxInfo")\n
\n
/////////////////////////////////////////////////////////////////\n
// declared methods\n
...
...
@@ -150,7 +152,7 @@
append_class = " ui-disabled";\n
append_attribute = \' disabled="disabled\';\n
}\n
\n
search_gadget.props.extended_search = option_dict.extended_search;
\n
return new RSVP.Queue()\n
.push(function () {\n
return search_gadget.translateHtml(panel_template({\n
...
...
@@ -178,6 +180,30 @@
\n
result[input.getAttribute(\'name\')] = value;\n
return result;\n
})\n
.declareService(function () {\n
var gadget = this,\n
url,\n
options = {},\n
sort_form = gadget.props.element.querySelector(".filter_form");\n
return loopEventListener(\n
sort_form,\n
"submit",\n
false,\n
function () {\n
return new RSVP.Queue()\n
.push(function () {\n
return gadget.getListboxInfo();\n
})\n
.push(function (result) {\n
url = "gadget_erp5_search_editor.html";\n
options.extended_search = gadget.props.extended_search;\n
options.begin_from = result.begin_from;\n
options.search_column_list = result.search_column_list;\n
return gadget.renderEditorPanel(url, options);\n
});\n
}\n
);\n
});\n
\n
}(window, rJS, RSVP, loopEventListener, Handlebars));
</string>
</value>
...
...
@@ -315,7 +341,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
94
6.44927.40202.16725
</string>
</value>
<value>
<string>
94
7.25574.60857.20718
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -333,7 +359,7 @@
</tuple>
<state>
<tuple>
<float>
1448
467423.65
</float>
<float>
1448
889581.09
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.xml
0 → 100644
View file @
9b46e1cb
<?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
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
\n
<td></td>
\n
</tr>
\n
<tr>
\n
<td>
assertTextPresent
</td>
\n
<td>
Created Successfully.
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
\n
\n
\n
<!-- Initialize -->
\n
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Foos
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
0
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td>
index=1
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//input
</td>
\n
<td>
Title 2
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
link=Title 8
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyElementNotPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementNotPresent
</td>
\n
<td>
link=Title 8
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementNotPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
check
</td>
\n
<td>
//input[@class=\'or checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
off
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class=\'filter_item_container\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\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>
verifyElementPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</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>
testComplexFilter
</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>
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.xml
0 → 100644
View file @
9b46e1cb
<?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
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
\n
<td></td>
\n
</tr>
\n
<tr>
\n
<td>
assertTextPresent
</td>
\n
<td>
Created Successfully.
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
\n
\n
\n
<!-- Initialize -->
\n
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Foos
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
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
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class=\'filter_item_container\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=1
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
T%
</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
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
link=Title 9
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 9
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 8
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 7
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementNotPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</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>
testFilter
</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>
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.xml
0 → 100644
View file @
9b46e1cb
<?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
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
\n
<td></td>
\n
</tr>
\n
<tr>
\n
<td>
assertTextPresent
</td>
\n
<td>
Created Successfully.
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
\n
\n
\n
<!-- Initialize -->
\n
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Foos
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
0
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td>
index=1
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//input
</td>
\n
<td>
Title 2
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
check
</td>
\n
<td>
//input[@class=\'or checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
off
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class=\'filter_item_container\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
off
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'or checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</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>
testFilterItemAutoBuild
</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>
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.xml
0 → 100644
View file @
9b46e1cb
<?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
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
\n
<td></td>
\n
</tr>
\n
<tr>
\n
<td>
assertTextPresent
</td>
\n
<td>
Created Successfully.
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
\n
\n
\n
<!-- Initialize -->
\n
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Foos
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
check
</td>
\n
<td>
//input[@class=\'or checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
off
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class=\'filter_item_container\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
0
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td>
index=1
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//input
</td>
\n
<td>
Title 2
</td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\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>
testFilterItemDelete
</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>
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.xml
0 → 100644
View file @
9b46e1cb
<?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
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
\n
<td></td>
\n
</tr>
\n
<tr>
\n
<td>
assertTextPresent
</td>
\n
<td>
Created Successfully.
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
\n
\n
\n
<!-- Initialize -->
\n
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Foos
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
check
</td>
\n
<td>
//input[@class=\'or checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'or checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
0
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//input
</td>
\n
<td>
1
</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
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]//input
</td>
\n
<td>
2
</td>
\n
</tr>
\n
\n
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]//input
</td>
\n
<td>
3
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//a[@data-i18n="Next"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 2
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[4]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[3]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[2]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</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>
testFilterWithPager
</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>
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.xml
0 → 100644
View file @
9b46e1cb
<?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
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
\n
<td></td>
\n
</tr>
\n
<tr>
\n
<td>
assertTextPresent
</td>
\n
<td>
Created Successfully.
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
\n
\n
\n
<!-- Initialize -->
\n
<tr>
\n
<td>
open
</td>
\n
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//h3[@data-i18n=\'Other\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Foos
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Previous\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
verifyValue
</td>
\n
<td>
//input[@class=\'and checkboxradio\']
</td>
\n
<td>
on
</td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'plus\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'plus\']//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
select
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//select
</td>
\n
<td>
index=0
</td>
\n
</tr>
\n
\n
<tr>
\n
<td>
type
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//input
</td>
\n
<td>
0
</td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</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
<tr>
\n
<td>
verifyElementPresent
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
link=Title 0
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Edit\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Next\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//a[@data-i18n=\'Next\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n = "Title 0"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n=\'Foos\']
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'filter_form\']//input
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
\n
<tr>
\n
<td>
focus
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]//button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//div[@class="filter_item_container"]/div[1]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
click
</td>
\n
<td>
//form[@class=\'submit\']/button
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementNotPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</td>
\n
<td></td>
\n
</tr>
\n
\n
<tr>
\n
<td>
waitForElementPresent
</td>
\n
<td>
//a[@data-i18n="Previous"]
</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>
testFilterWithPreviousNext
</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>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment