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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Alexander Emmerich
erp5
Commits
08dfb23b
Commit
08dfb23b
authored
Jul 27, 2017
by
Tomáš Peterka
Committed by
Tomáš Peterka
Jul 27, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[renderj_ui] Sort Editor shows ONLY correct sort definitions in form of "column | order"
parent
4ba9ad35
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
127 additions
and
122 deletions
+127
-122
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.html
...Item/web_page_module/rjs_gadget_erp5_sorteditor_html.html
+2
-7
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml
...eItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml
+2
-2
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js
...lateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js
+12
-8
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml
...ateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml
+2
-2
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortDefault.zpt
...ortal_tests/renderjs_ui_listbox_zuite/testSortDefault.zpt
+109
-103
No files found.
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.html
View file @
08dfb23b
...
@@ -27,13 +27,8 @@
...
@@ -27,13 +27,8 @@
<
/select
>
<
/select
>
<
select
data
-
wrapper
-
class
=
"
ui-input-has-clear
"
data
-
iconpos
=
"
left
"
>
<
select
data
-
wrapper
-
class
=
"
ui-input-has-clear
"
data
-
iconpos
=
"
left
"
>
{{
#
equal
operator
"
ascending
"
}}
<
option
{{
#
equal
operator
"
ascending
"
}}
selected
=
"
selected
"
{{
/
equal
}}
data
-
i18n
=
"
ascending
"
value
=
"
ascending
"
>
ascending
<
/option
>
<
option
selected
=
"
selected
"
data
-
i18n
=
"
ascending
"
value
=
"
ascending
"
>
ascending
<
/option
>
<
option
{{
#
equal
operator
"
descending
"
}}
selected
=
"
selected
"
{{
/
equal
}}
data
-
i18n
=
"
descending
"
value
=
"
descending
"
>
descending
<
/option
>
<
option
data
-
i18n
=
"
descending
"
value
=
"
descending
"
>
descending
<
/option
>
{{
else
}}
<
option
data
-
i18n
=
"
ascending
"
value
=
"
ascending
"
>
ascending
<
/option
>
<
option
selected
=
"
selected
"
data
-
i18n
=
"
descending
"
value
=
"
descending
"
>
descending
<
/option
>
{{
/
equal
}}
<
/select
>
<
/select
>
<
/div
>
<
/div
>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml
View file @
08dfb23b
...
@@ -234,7 +234,7 @@
...
@@ -234,7 +234,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
55.38127.32735.11195
</string>
</value>
<value>
<string>
9
60.64833.40099.37870
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -252,7 +252,7 @@
...
@@ -252,7 +252,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
480342874.92
</float>
<float>
1
501087193.61
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js
View file @
08dfb23b
...
@@ -43,6 +43,12 @@
...
@@ -43,6 +43,12 @@
}));
}));
}
}
/* Valid sort item is a tuple of (column-name, ordering) */
function
isValidSortItem
(
sort_item
)
{
return
sort_item
.
length
===
2
&&
(
sort_item
[
1
]
===
'
ascending
'
||
sort_item
[
1
]
===
'
descending
'
);
}
gadget_klass
gadget_klass
//////////////////////////////////////////////
//////////////////////////////////////////////
// acquired method
// acquired method
...
@@ -58,17 +64,15 @@
...
@@ -58,17 +64,15 @@
return
gadget
.
translateHtml
(
sort_template
())
return
gadget
.
translateHtml
(
sort_template
())
.
push
(
function
(
translated_html
)
{
.
push
(
function
(
translated_html
)
{
var
i
,
promise_list
=
[];
div
.
innerHTML
=
translated_html
;
div
.
innerHTML
=
translated_html
;
for
(
i
=
0
;
i
<
gadget
.
state
.
sort_list
.
length
;
i
+=
1
)
{
return
RSVP
.
all
(
gadget
.
state
.
sort_list
if
(
gadget
.
state
.
sort_list
[
i
])
{
.
filter
(
isValidSortItem
)
promise_list
.
push
(
createSortItemTemplate
(
gadget
,
gadget
.
state
.
sort_list
[
i
]));
.
map
(
function
(
sort_item
)
{
}
return
createSortItemTemplate
(
gadget
,
sort_item
);
}
})
return
RSVP
.
all
(
promise_list
);
);
})
})
.
push
(
function
(
result_list
)
{
.
push
(
function
(
result_list
)
{
var
i
,
var
i
,
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml
View file @
08dfb23b
...
@@ -230,7 +230,7 @@
...
@@ -230,7 +230,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
55.38160.33114.47854
</string>
</value>
<value>
<string>
9
60.64839.39902.53248
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -248,7 +248,7 @@
...
@@ -248,7 +248,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
1
480344058.06
</float>
<float>
1
501087184.97
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortDefault.zpt
View file @
08dfb23b
<html
xmlns:tal=
"http://xml.zope.org/namespaces/tal"
<html
xmlns:tal=
"http://xml.zope.org/namespaces/tal"
xmlns:metal=
"http://xml.zope.org/namespaces/metal"
>
xmlns:metal=
"http://xml.zope.org/namespaces/metal"
>
<!--
Ensure default sort is shown on visible columns and in Sort Editor
- default mal-defined sort must not appear neither as an arrow nor in Sort Editor
- correctly defined sorting (ASC and DESC) will appear in both (arrow, editor)
Frontend should not suppose default sorting
-->
<head>
<head>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
<title>
Test RenderJS UI
</title>
<title>
Test RenderJS UI
</title>
...
@@ -11,119 +19,117 @@
...
@@ -11,119 +19,117 @@
</thead><tbody>
</thead><tbody>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/init"
/>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/init"
/>
<!-- make the listbox to sort by Title DESC which is not the default default now -->
<!-- Clean Up -->
<tr>
<tr><td>
open
</td>
<td>
open
</td>
<td>
${base_url}/foo_module/ListBoxZuite_reset
</td><td></td></tr>
<td>
${base_url}/foo_module/ListBoxZuite_reset?field_sort=title+%7C+DESC
</td>
<!-- ?field_sort="title | DESC" -->
<tr><td>
assertTextPresent
</td>
<td></td>
<td>
Reset Successfully.
</td><td></td></tr>
</tr>
<tr>
<!-- Shortcut for full renderjs url -->
<td>
assertTextPresent
</td>
<tr><td>
store
</td>
<td>
Reset Successfully.
</td>
<td>
${base_url}/web_site_module/renderjs_runner
</td>
<td></td>
<td>
renderjs_url
</td></tr>
</tr>
<!-- Create Foo objects with IDs 0-9 -->
<!-- Create Foo objects with IDs 0-9 -->
<tr>
<tr><td>
open
</td>
<td>
open
</td>
<td>
${base_url}/foo_module/FooModule_createObjects
</td><td></td></tr>
<td>
${base_url}/foo_module/FooModule_createObjects
</td>
<tr><td>
assertTextPresent
</td>
<td></td>
<td>
Created Successfully.
</td><td></td></tr>
</tr>
<tr>
<td>
assertTextPresent
</td>
<td>
Created Successfully.
</td>
<td></td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplate/macros/wait_for_activities"
/>
<tr>
<!-- Verify ListBox behaviour with mal-formed sort definition -->
<td>
open
</td>
<tr><td>
open
</td>
<td>
${base_url}/web_site_module/renderjs_runner/#/foo_module
</td>
<td>
${renderjs_url}/#/foo_module
</td><td></td></tr>
<td></td>
<tr><td>
waitForElementPresent
</td>
</tr>
<td>
//a[@data-i18n='ID']
</td><td></td></tr>
<!-- No default sort must be shown because the definition is broken "id | id" -->
<tr>
<tr><td>
verifyElementPresent
</td>
<td>
waitForElementPresent
</td>
<td>
//th[@class='']/a[@data-i18n='ID']
</td><td></td></tr>
<td>
//a[@data-i18n='Title']
</td>
<!-- Make sure broken definitions don't appear in sort editor -->
<td></td>
<tr><td>
waitForElementPresent
</td>
</tr>
<td>
//button[@data-i18n='Sort']
</td><td></td></tr>
<tr><td>
click
</td>
<tr>
<td>
//button[@data-i18n='Sort']
</td><td></td></tr>
<td>
verifyElementPresent
</td>
<tr><td>
waitForElementPresent
</td>
<td>
//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='Title']
</td>
<td>
//div[@data-gadget-url='${renderjs_url}/gadget_erp5_sort_editor.html']//button[@class="plus ui-btn-c ui-override-theme ui-btn ui-icon-plus ui-btn-icon-left ui-corner-all"]
</td><td></td></tr>
<td></td>
<tr><td>
verifyElementNotPresent
</td>
</tr>
<td>
//div[@data-gadget-url='${renderjs_url}/gadget_erp5_sort_editor.html']//select
</td><td></td></tr>
<!-- Test whether another sorting condition does keep default sort -->
<!-- Let's set up the default sort correctly: id | ASC -->
<tr><td>
open
</td>
<tr>
<td>
${base_url}/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_sort=id+%7C+ASC
</td><td></td></tr>
<td>
waitForElementPresent
</td>
<tr><td>
assertTextPresent
</td>
<td>
//button[@data-i18n='Sort']
</td>
<td>
Set Successfully.
</td><td></td></tr>
<td></td>
</tr>
<!-- Verify ListBox behaviour with valid ASC sort configuration -->
<tr><td>
open
</td>
<tr>
<td>
${renderjs_url}//#/foo_module
</td><td></td></tr>
<td>
click
</td>
<tr><td>
waitForElementPresent
</td>
<td>
//button[@data-i18n='Sort']
</td>
<td>
//a[@data-i18n='ID']
</td><td></td></tr>
<td></td>
<!-- Default sort on ID column has to be ASCENDING -->
</tr>
<tr><td>
verifyElementPresent
</td>
<td>
//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='ID']
</td><td></td></tr>
<tr>
<!-- Verify that the default sort is visible in Sort Editor -->
<td>
waitForElementPresent
</td>
<tr><td>
waitForElementPresent
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]
</td>
<td>
//button[@data-i18n='Sort']
</td><td></td></tr>
<td></td>
<tr><td>
click
</td>
</tr>
<td>
//button[@data-i18n='Sort']
</td><td></td></tr>
<tr><td>
waitForElementPresent
</td>
<!-- make sure the default sort if visible in "sort editor" -->
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]
</td><td></td></tr>
<tr>
<tr><td>
verifyValue
</td>
<td>
verifyValue
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]
</td>
<td>
id
</td></tr>
<td>
title
</td>
<tr><td>
verifyValue
</td>
</tr>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]
</td>
<td>
ascending
</td></tr>
<tr>
<td>
verifyValue
</td>
<!-- Let's set up the default sort correctly: title | DESC -->
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]
</td>
<tr><td>
open
</td>
<td>
descending
</td>
<td>
${base_url}/FooModule_viewFooList/listbox/ListBox_setPropertyList?field_sort=title+%7C+DESC
</td><td></td></tr>
</tr>
<tr><td>
assertTextPresent
</td>
<td>
Set Successfully.
</td><td></td></tr>
<!-- reset sort and our set up value is the only one to sort by -->
<tr>
<!-- Verify ListBox behaviour with valid DESC sort configuration -->
<td>
select
</td>
<tr><td>
open
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]
</td>
<td>
${renderjs_url}/#/foo_module
</td><td></td></tr>
<td>
index=0
</td>
<!-- select id -->
<tr><td>
waitForElementPresent
</td>
</tr>
<td>
//a[@data-i18n='Title']
</td><td></td></tr>
<!-- Default sort on Title column has to be DESCENDING -->
<tr>
<tr><td>
verifyElementPresent
</td>
<td>
click
</td>
<td>
//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='Title']
</td><td></td></tr>
<td>
//button[@class="submit responsive ui-last-child ui-btn ui-btn-icon-left ui-icon-check"]
</td>
<!-- No other sort must be shown -->
<td></td>
<tr><td>
verifyElementPresent
</td>
</tr>
<td>
//th[@class='']/a[@data-i18n='ID']
</td><td></td></tr>
<!-- Verify that the default sort is visible in Sort Editor -->
<tr><td>
waitForElementPresent
</td>
<td>
//button[@data-i18n='Sort']
</td><td></td></tr>
<tr><td>
click
</td>
<td>
//button[@data-i18n='Sort']
</td><td></td></tr>
<tr><td>
waitForElementPresent
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]
</td><td></td></tr>
<tr><td>
verifyValue
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]
</td>
<td>
title
</td></tr>
<tr><td>
verifyValue
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]
</td>
<td>
descending
</td></tr>
<!-- Change sort using the Sort Editor -->
<tr><td>
select
</td>
<td>
//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]
</td>
<td>
index=0
</td>
<!-- select ID -->
</tr>
<tr><td>
click
</td>
<td>
//button[@class="submit responsive ui-last-child ui-btn ui-btn-icon-left ui-icon-check"]
</td><td></td></tr>
<!-- Wait for the Filters to be applied -->
<!-- Wait for the Filters to be applied -->
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<!-- Check that default sort arrow disappeared -->
<!-- Verify that default sort arrow disappeared -->
<tr>
<tr><td>
verifyElementPresent
</td>
<td>
verifyElementNotPresent
</td>
<td>
//th[@class='']/a[@data-i18n='Title']
</td><td></td></tr>
<td>
//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='Title']
</td>
<tr><td>
verifyElementPresent
</td>
<td></td>
<td>
//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='ID']
</td><td></td></tr>
</tr>
<tr>
<td>
verifyElementNotPresent
</td>
<td>
//th[@class='ui-icon ui-icon-arrow-up']/a[@data-i18n='ID']
</td>
<td></td>
</tr>
<tr>
<td>
verifyElementPresent
</td>
<td>
//th[@class='ui-icon ui-icon-arrow-down']/a[@data-i18n='ID']
</td>
<td></td>
</tr>
</tbody></table>
</tbody></table>
</body>
</body>
...
...
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