Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5-Boxiang
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
Hamza
erp5-Boxiang
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