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
Léo-Paul Géneau
erp5
Commits
5e2cf409
Commit
5e2cf409
authored
Jan 25, 2021
by
Romain Courteaud
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_web_renderjs_ui: float field: handle all ERP5 input types
parent
9fdaa99a
Changes
15
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
2306 additions
and
47 deletions
+2306
-47
bt5/erp5_ui_test/ActionTemplateItem/portal_types/Foo/view_float_field.xml
.../ActionTemplateItem/portal_types/Foo/view_float_field.xml
+79
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField.xml
...lateItem/portal_skins/erp5_ui_test/Foo_viewFloatField.xml
+162
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_delivery_ratio.xml
...ins/erp5_ui_test/Foo_viewFloatField/my_delivery_ratio.xml
+256
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_delivery_ratio_read_only.xml
...i_test/Foo_viewFloatField/my_delivery_ratio_read_only.xml
+271
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity.xml
...tal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity.xml
+252
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity_read_only.xml
...erp5_ui_test/Foo_viewFloatField/my_quantity_read_only.xml
+270
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity_read_only_percent.xml
...test/Foo_viewFloatField/my_quantity_read_only_percent.xml
+270
-0
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/your_first_failure.xml
...ns/erp5_ui_test/Foo_viewFloatField/your_first_failure.xml
+264
-0
bt5/erp5_ui_test/bt/template_action_path_list
bt5/erp5_ui_test/bt/template_action_path_list
+1
-0
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_floatfield_js.js
...lateItem/web_page_module/rjs_gadget_erp5_floatfield_js.js
+142
-44
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_floatfield_js.xml
...ateItem/web_page_module/rjs_gadget_erp5_floatfield_js.xml
+3
-3
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_float_field_zuite/testFloatFieldPercentType.xml
...nderjs_ui_float_field_zuite/testFloatFieldPercentType.xml
+58
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_float_field_zuite/testFloatFieldPercentType.zpt
...nderjs_ui_float_field_zuite/testFloatFieldPercentType.zpt
+95
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_float_field_zuite/testFloatFieldSeparator.xml
...renderjs_ui_float_field_zuite/testFloatFieldSeparator.xml
+58
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_float_field_zuite/testFloatFieldSeparator.zpt
...renderjs_ui_float_field_zuite/testFloatFieldSeparator.zpt
+125
-0
No files found.
bt5/erp5_ui_test/ActionTemplateItem/portal_types/Foo/view_float_field.xml
0 → 100644
View file @
5e2cf409
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ActionInformation"
module=
"Products.CMFCore.ActionInformation"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
action
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
action_type/object_view
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
category
</string>
</key>
<value>
<string>
object_view
</string>
</value>
</item>
<item>
<key>
<string>
condition
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string>
A form with only only a float field
</string>
</value>
</item>
<item>
<key>
<string>
icon
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
view_float_field
</string>
</value>
</item>
<item>
<key>
<string>
permissions
</string>
</key>
<value>
<tuple>
<string>
View
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
priority
</string>
</key>
<value>
<float>
5.0
</float>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Float Field
</string>
</value>
</item>
<item>
<key>
<string>
visible
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"Expression"
module=
"Products.CMFCore.Expression"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
text
</string>
</key>
<value>
<string>
string:${object_url}/Foo_viewFloatField
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField.xml
0 → 100644
View file @
5e2cf409
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ERP5 Form"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_objects
</string>
</key>
<value>
<tuple/>
</value>
</item>
<item>
<key>
<string>
action
</string>
</key>
<value>
<string>
Base_edit
</string>
</value>
</item>
<item>
<key>
<string>
action_title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
edit_order
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
encoding
</string>
</key>
<value>
<string>
UTF-8
</string>
</value>
</item>
<item>
<key>
<string>
enctype
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
group_list
</string>
</key>
<value>
<list>
<string>
left
</string>
<string>
right
</string>
<string>
center
</string>
<string>
bottom
</string>
<string>
hidden
</string>
</list>
</value>
</item>
<item>
<key>
<string>
groups
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
bottom
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
center
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<list/>
</value>
</item>
<item>
<key>
<string>
left
</string>
</key>
<value>
<list>
<string>
your_first_failure
</string>
<string>
my_delivery_ratio
</string>
<string>
my_delivery_ratio_read_only
</string>
</list>
</value>
</item>
<item>
<key>
<string>
right
</string>
</key>
<value>
<list>
<string>
my_quantity
</string>
<string>
my_quantity_read_only
</string>
<string>
my_quantity_read_only_percent
</string>
</list>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
Foo_viewFloatField
</string>
</value>
</item>
<item>
<key>
<string>
method
</string>
</key>
<value>
<string>
POST
</string>
</value>
</item>
<item>
<key>
<string>
name
</string>
</key>
<value>
<string>
Foo_viewFloatField
</string>
</value>
</item>
<item>
<key>
<string>
pt
</string>
</key>
<value>
<string>
form_view
</string>
</value>
</item>
<item>
<key>
<string>
row_length
</string>
</key>
<value>
<int>
4
</int>
</value>
</item>
<item>
<key>
<string>
stored_encoding
</string>
</key>
<value>
<string>
UTF-8
</string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Float Fields
</string>
</value>
</item>
<item>
<key>
<string>
unicode_mode
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
update_action
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
update_action_title
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_delivery_ratio.xml
0 → 100644
View file @
5e2cf409
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"FloatField"
module=
"Products.Formulator.StandardFields"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
my_delivery_ratio
</string>
</value>
</item>
<item>
<key>
<string>
message_values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
external_validator_failed
</string>
</key>
<value>
<string>
The input failed the external validator.
</string>
</value>
</item>
<item>
<key>
<string>
not_float
</string>
</key>
<value>
<string>
You did not enter a floating point number.
</string>
</value>
</item>
<item>
<key>
<string>
required_not_found
</string>
</key>
<value>
<string>
Input is required but no input given.
</string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
overrides
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_style
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
precision
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
tales
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_style
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_type
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
precision
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<int>
20
</int>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
input_style
</string>
</key>
<value>
<string>
-12.3%
</string>
</value>
</item>
<item>
<key>
<string>
input_type
</string>
</key>
<value>
<string>
text
</string>
</value>
</item>
<item>
<key>
<string>
precision
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Delivery Ratio
</string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_delivery_ratio_read_only.xml
0 → 100644
View file @
5e2cf409
This diff is collapsed.
Click to expand it.
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity.xml
0 → 100644
View file @
5e2cf409
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"FloatField"
module=
"Products.Formulator.StandardFields"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
my_quantity
</string>
</value>
</item>
<item>
<key>
<string>
message_values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
external_validator_failed
</string>
</key>
<value>
<string>
The input failed the external validator.
</string>
</value>
</item>
<item>
<key>
<string>
not_float
</string>
</key>
<value>
<string>
You did not enter a floating point number.
</string>
</value>
</item>
<item>
<key>
<string>
required_not_found
</string>
</key>
<value>
<string>
Input is required but no input given.
</string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
overrides
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_style
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
precision
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
tales
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
input_style
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
precision
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<string></string>
</value>
</item>
</dictionary>
</value>
</item>
<item>
<key>
<string>
values
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
alternate_name
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
css_class
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
default
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_maxwidth
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
display_width
</string>
</key>
<value>
<int>
20
</int>
</value>
</item>
<item>
<key>
<string>
editable
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
enabled
</string>
</key>
<value>
<int>
1
</int>
</value>
</item>
<item>
<key>
<string>
external_validator
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
extra
</string>
</key>
<value>
<string></string>
</value>
</item>
<item>
<key>
<string>
hidden
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
input_style
</string>
</key>
<value>
<string>
-1.234,5
</string>
</value>
</item>
<item>
<key>
<string>
input_type
</string>
</key>
<value>
<string>
text
</string>
</value>
</item>
<item>
<key>
<string>
precision
</string>
</key>
<value>
<int>
2
</int>
</value>
</item>
<item>
<key>
<string>
required
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
title
</string>
</key>
<value>
<string>
Quantity
</string>
</value>
</item>
<item>
<key>
<string>
whitespace_preserve
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity_read_only.xml
0 → 100644
View file @
5e2cf409
This diff is collapsed.
Click to expand it.
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/my_quantity_read_only_percent.xml
0 → 100644
View file @
5e2cf409
This diff is collapsed.
Click to expand it.
bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/Foo_viewFloatField/your_first_failure.xml
0 → 100644
View file @
5e2cf409
This diff is collapsed.
Click to expand it.
bt5/erp5_ui_test/bt/template_action_path_list
View file @
5e2cf409
...
...
@@ -41,6 +41,7 @@ Foo | view_crash_on_save
Foo | view_dialog_with_only_update
Foo | view_dialog_with_validation_error
Foo | view_duration_field
Foo | view_float_field
Foo | view_formbox
Foo | view_formbox_dialog
Foo | view_formbox_fooline
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_floatfield_js.js
View file @
5e2cf409
/*global window, rJS, Math */
/*global window, rJS, Math
, parseFloat, isNaN
*/
/*jslint indent: 2, maxerr: 3 */
(
function
(
window
,
rJS
,
Math
)
{
(
function
(
window
,
rJS
,
Math
,
parseFloat
,
isNaN
)
{
"
use strict
"
;
var
separator_re
=
/
\d([\.
,
\-
_
])?\d\d\d
/
,
input_format_re
=
/
(
-
?)(\d
+
)(\.\d
+
)?
/
;
var
HTML5_INPUT_STYLE
=
"
-1234.5
"
,
SPACE_INPUT_STYLE
=
"
-1 234.5
"
,
SPACE_COMMA_INPUT_STYLE
=
"
-1 234,5
"
,
DOT_COMMA_INPUT_STYLE
=
"
-1.234,5
"
,
COMMA_DOT_INPUT_STYLE
=
"
-1,234.5
"
,
PERCENT_INPUT_STYLE
=
"
-12.3%
"
;
/** Slice any slice-able parameter into triplets **/
function
toTriplets
(
sliceable
)
{
var
parts
=
[],
i
=
sliceable
.
length
;
for
(
i
=
sliceable
.
length
;
i
>
3
;
i
-=
3
)
{
parts
.
unshift
(
sliceable
.
slice
(
i
-
3
,
i
));
function
setCharAt
(
str
,
index
,
chr
)
{
return
str
.
substring
(
0
,
index
)
+
chr
+
str
.
substring
(
index
+
1
);
}
parts
.
unshift
(
sliceable
.
slice
(
0
,
i
));
return
parts
;
function
getSeparatorDict
(
input_style
)
{
if
(
input_style
===
SPACE_INPUT_STYLE
)
{
return
{
thousand
:
'
'
,
decimal
:
'
.
'
};
}
if
(
input_style
===
SPACE_COMMA_INPUT_STYLE
)
{
return
{
thousand
:
'
'
,
decimal
:
'
,
'
};
}
if
(
input_style
===
DOT_COMMA_INPUT_STYLE
)
{
return
{
thousand
:
'
.
'
,
decimal
:
'
,
'
};
}
if
(
input_style
===
COMMA_DOT_INPUT_STYLE
)
{
return
{
thousand
:
'
,
'
,
decimal
:
'
.
'
};
}
throw
new
Error
(
'
No supported input style:
'
+
input_style
);
}
function
convertFloatToHTML5Input
(
precision
,
input_style
,
float
)
{
// ERP5 always devides the value by 100 if it is set to percentages
// thus we have to mitigate that in javascript here
if
(
input_style
===
PERCENT_INPUT_STYLE
)
{
float
*=
100.0
;
}
if
(
!
isNaN
(
precision
))
{
float
=
float
.
toFixed
(
precision
);
}
return
float
.
toString
();
}
function
convertERP5InputToHTML5Input
(
input_style
,
text
)
{
// Convert ERP5 input style to html5 float text
if
(
input_style
===
HTML5_INPUT_STYLE
)
{
return
text
;
}
if
(
input_style
===
PERCENT_INPUT_STYLE
)
{
if
(
text
[
text
.
length
-
1
]
!==
'
%
'
)
{
throw
new
Error
(
'
Can not parse:
'
+
text
);
}
return
text
.
substring
(
0
,
text
.
length
-
1
);
}
var
separator_dict
=
getSeparatorDict
(
input_style
),
decimal_index
=
text
.
indexOf
(
separator_dict
.
decimal
),
original_text
=
text
,
i
;
if
(
decimal_index
!==
-
1
)
{
text
=
setCharAt
(
text
,
decimal_index
,
'
.
'
);
i
=
decimal_index
;
}
else
{
i
=
text
.
length
;
}
i
=
i
-
4
;
// Remove thousand separator
while
(
i
>
0
)
{
if
(
text
[
i
]
!==
separator_dict
.
thousand
)
{
throw
new
Error
(
'
Can not parse:
'
+
original_text
);
}
text
=
text
.
substring
(
0
,
i
)
+
text
.
substring
(
i
+
1
);
i
-=
4
;
}
return
text
;
}
function
convertHTML5InputToERP5Input
(
input_style
,
text
)
{
if
(
input_style
===
HTML5_INPUT_STYLE
)
{
return
text
;
}
if
(
input_style
===
PERCENT_INPUT_STYLE
)
{
return
text
+
'
%
'
;
}
var
separator_dict
=
getSeparatorDict
(
input_style
),
decimal_index
=
text
.
indexOf
(
'
.
'
),
i
;
if
(
decimal_index
!==
-
1
)
{
text
=
setCharAt
(
text
,
decimal_index
,
separator_dict
.
decimal
);
i
=
decimal_index
;
}
else
{
i
=
text
.
length
;
}
i
=
i
-
3
;
// Add thousand separator
while
(
i
>
0
)
{
text
=
text
.
substring
(
0
,
i
)
+
separator_dict
.
thousand
+
text
.
substring
(
i
);
i
-=
3
;
}
return
text
;
}
rJS
(
window
)
...
...
@@ -24,9 +114,10 @@
})
.
declareMethod
(
'
render
'
,
function
(
options
)
{
var
field_json
=
options
.
field_json
||
{},
input_style
=
(
field_json
.
input_style
||
""
),
percentage
=
input_style
.
endsWith
(
"
%
"
),
thousand_sep
=
separator_re
.
test
(
input_style
)
?
(
separator_re
.
exec
(
input_style
)[
1
]
||
""
)
:
""
,
input_style
=
(
field_json
.
input_style
||
HTML5_INPUT_STYLE
),
value
=
field_json
.
default
,
text_content
,
precision
=
parseFloat
(
field_json
.
precision
),
state_dict
=
{
editable
:
field_json
.
editable
,
required
:
field_json
.
required
,
...
...
@@ -34,11 +125,8 @@
id
:
field_json
.
key
,
name
:
field_json
.
key
,
title
:
field_json
.
description
,
precision
:
window
.
parseFloat
(
field_json
.
precision
),
//
precision: window.parseFloat(field_json.precision),
error_text
:
field_json
.
error_text
,
// erp5 always put value into "default" (never "value")
value
:
window
.
parseFloat
(
field_json
.
default
),
text_content
:
''
,
// `step` is used for browser-level validation thus a mandatory value
// if unspecified we can use "any" value
step
:
"
any
"
,
...
...
@@ -47,31 +135,32 @@
// Force calling subfield render
// as user may have modified the input value
render_timestamp
:
new
Date
().
getTime
()
},
tmp
;
};
if
(
percentage
)
{
// ERP5 always devides the value by 100 if it is set to percentages
// thus we have to mitigate that in javascript here
// (field_json.default type is number, only when it is initially loaded)
if
(
typeof
(
field_json
.
default
)
==
'
number
'
)
{
state_dict
.
value
*=
100.0
;
if
(
typeof
value
===
'
number
'
)
{
value
=
convertFloatToHTML5Input
(
precision
,
input_style
,
value
);
text_content
=
convertHTML5InputToERP5Input
(
input_style
,
value
);
}
else
if
(
value
===
null
)
{
text_content
=
''
;
value
=
undefined
;
}
else
{
text_content
=
value
;
value
=
convertERP5InputToHTML5Input
(
input_style
,
value
);
}
state_dict
.
value
=
value
;
state_dict
.
text_content
=
text_content
;
state_dict
.
input_style
=
input_style
;
if
((
input_style
===
PERCENT_INPUT_STYLE
)
&&
state_dict
.
editable
)
{
// Display the % next to the input field
state_dict
.
append
=
"
%
"
;
}
if
(
!
window
.
isNaN
(
state_dict
.
precision
))
{
state_dict
.
step
=
Math
.
pow
(
10
,
-
state_dict
.
precision
).
toFixed
(
state_dict
.
precision
);
state_dict
.
value
=
state_dict
.
value
.
toFixed
(
state_dict
.
precision
);
}
if
(
!
window
.
isNaN
(
state_dict
.
value
))
{
state_dict
.
text_content
=
state_dict
.
value
.
toString
();
if
(
state_dict
.
text_content
!==
""
&&
thousand_sep
!==
""
)
{
tmp
=
input_format_re
.
exec
(
state_dict
.
text_content
);
// tmp == [full-number, sign, integer-part, .decimal-part (can be undefined because of permissive regexp), ...]
state_dict
.
text_content
=
tmp
[
1
]
+
toTriplets
(
tmp
[
2
]).
join
(
thousand_sep
)
+
(
tmp
[
3
]
||
""
);
tmp
=
undefined
;
}
if
(
!
isNaN
(
precision
))
{
state_dict
.
step
=
Math
.
pow
(
10
,
-
precision
)
.
toFixed
(
precision
);
}
return
this
.
changeState
(
state_dict
);
})
...
...
@@ -106,10 +195,19 @@
})
.
declareMethod
(
'
getContent
'
,
function
()
{
var
gadget
=
this
;
if
(
this
.
state
.
editable
)
{
return
this
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
gadget
)
{
return
gadget
.
getContent
();
.
push
(
function
(
sub_gadget
)
{
return
sub_gadget
.
getContent
();
})
.
push
(
function
(
result
)
{
result
[
gadget
.
state
.
name
]
=
convertHTML5InputToERP5Input
(
gadget
.
state
.
input_style
,
result
[
gadget
.
state
.
name
]
);
return
result
;
});
}
return
{};
...
...
@@ -125,4 +223,4 @@
return
true
;
},
{
mutex
:
'
changestate
'
});
}(
window
,
rJS
,
Math
));
\ No newline at end of file
}(
window
,
rJS
,
Math
,
parseFloat
,
isNaN
));
\ No newline at end of file
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_floatfield_js.xml
View file @
5e2cf409
...
...
@@ -220,7 +220,7 @@
</item>
<item>
<key>
<string>
actor
</string>
</key>
<value>
<string>
kazuhiko
</string>
</value>
<value>
<string>
zope
</string>
</value>
</item>
<item>
<key>
<string>
comment
</string>
</key>
...
...
@@ -234,7 +234,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
98
6.52682.33152.28245
</string>
</value>
<value>
<string>
98
9.39131.12225.13038
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -252,7 +252,7 @@
</tuple>
<state>
<tuple>
<float>
161
0995697.98
</float>
<float>
161
1676581.15
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_float_field_zuite/testFloatFieldPercentType.xml
0 → 100644
View file @
5e2cf409
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ZopePageTemplate"
module=
"Products.PageTemplates.ZopePageTemplate"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/html
</string>
</value>
</item>
<item>
<key>
<string>
expand
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
testFloatFieldPercentType
</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_float_field_zuite/testFloatFieldPercentType.zpt
0 → 100644
View file @
5e2cf409
<html
xmlns:tal=
"http://xml.zope.org/namespaces/tal"
xmlns:metal=
"http://xml.zope.org/namespaces/metal"
>
<head>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
<title>
Test Float Value with Float Fields
</title>
</head>
<body>
<table
cellpadding=
"1"
cellspacing=
"1"
border=
"1"
>
<thead>
<tr><td
rowspan=
"1"
colspan=
"3"
>
Test thousand and decimal separators
</td></tr>
</thead><tbody>
<tal:block
metal:use-macro=
"here/PTZuite_CommonTemplate/macros/init"
/>
<!-- Shortcut for full renderjs url -->
<tr><td>
store
</td>
<td>
${base_url}/web_site_module/renderjs_runner
</td>
<td>
renderjs_url
</td></tr>
<tr><td>
open
</td>
<td>
${renderjs_url}/#/foo_module/1?editable=1
</td><td></td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded"
/>
<tal:block
tal:define=
"click_configuration python: {'text': 'Views'}"
>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link"
/>
</tal:block>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tal:block
tal:define=
"click_configuration python: {'text': 'Float Field'}"
>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link"
/>
</tal:block>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tr>
<td
colspan=
"3"
><p></p></td>
</tr>
<tr>
<td
colspan=
"3"
><b>
Check default 1 value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_delivery_ratio
</td>
<td>
100.0
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_delivery_ratio_read_only' and text()='1,0000']
</td>
<td></td></tr>
<tr><td>
type
</td>
<td>
field_my_delivery_ratio
</td>
<td>
99.9
</td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<tr>
<td
colspan=
"3"
><b>
Check 1 value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_delivery_ratio
</td>
<td>
99.9
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_delivery_ratio_read_only' and text()='0,9990']
</td>
<td></td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<tr>
<td
colspan=
"3"
><b>
Check value is not modified by save only
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_delivery_ratio
</td>
<td>
99.9
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_delivery_ratio_read_only' and text()='0,9990']
</td>
<td></td></tr>
<tr><td>
type
</td>
<td>
field_my_delivery_ratio
</td>
<td>
0.1
</td></tr>
<tr><td>
type
</td>
<td>
field_your_first_failure
</td>
<td>
3
</td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/click_save"
/>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tal:block
tal:define=
"notification_configuration python: {'class': 'error',
'text': 'Input data has errors.'}"
>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification"
/>
</tal:block>
<tr>
<td
colspan=
"3"
><b>
Check validator string value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_delivery_ratio
</td>
<td>
0.1
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_delivery_ratio_read_only' and text()='0,9990']
</td>
<td></td></tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_float_field_zuite/testFloatFieldSeparator.xml
0 → 100644
View file @
5e2cf409
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"ZopePageTemplate"
module=
"Products.PageTemplates.ZopePageTemplate"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
content_type
</string>
</key>
<value>
<string>
text/html
</string>
</value>
</item>
<item>
<key>
<string>
expand
</string>
</key>
<value>
<int>
0
</int>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
testFloatFieldSeparator
</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_float_field_zuite/testFloatFieldSeparator.zpt
0 → 100644
View file @
5e2cf409
<html
xmlns:tal=
"http://xml.zope.org/namespaces/tal"
xmlns:metal=
"http://xml.zope.org/namespaces/metal"
>
<head>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
>
<title>
Test Float Value with Float Fields
</title>
</head>
<body>
<table
cellpadding=
"1"
cellspacing=
"1"
border=
"1"
>
<thead>
<tr><td
rowspan=
"1"
colspan=
"3"
>
Test thousand and decimal separators
</td></tr>
</thead><tbody>
<tal:block
metal:use-macro=
"here/PTZuite_CommonTemplate/macros/init"
/>
<!-- Shortcut for full renderjs url -->
<tr><td>
store
</td>
<td>
${base_url}/web_site_module/renderjs_runner
</td>
<td>
renderjs_url
</td></tr>
<tr><td>
open
</td>
<td>
${renderjs_url}/#/foo_module/1?editable=1
</td><td></td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded"
/>
<tal:block
tal:define=
"click_configuration python: {'text': 'Views'}"
>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link"
/>
</tal:block>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tal:block
tal:define=
"click_configuration python: {'text': 'Float Field'}"
>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_page_link"
/>
</tal:block>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tr>
<td
colspan=
"3"
><p></p></td>
</tr>
<tr>
<td
colspan=
"3"
><b>
Check default 0 value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_quantity
</td>
<td>
0.00
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only' and text()='0,000']
</td>
<td></td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only_percent' and text()='0.00%']
</td>
<td></td></tr>
<tr><td>
type
</td>
<td>
field_my_quantity
</td>
<td>
1
</td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<tr>
<td
colspan=
"3"
><b>
Check 1 value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_quantity
</td>
<td>
1.00
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only' and text()='1,000']
</td>
<td></td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only_percent' and text()='100.00%']
</td>
<td></td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<tr>
<td
colspan=
"3"
><b>
Check value is not modified by save only
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_quantity
</td>
<td>
1.00
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only' and text()='1,000']
</td>
<td></td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only_percent' and text()='100.00%']
</td>
<td></td></tr>
<tr><td>
type
</td>
<td>
field_my_quantity
</td>
<td>
1000.1
</td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<tr>
<td
colspan=
"3"
><b>
Check 1000.1 value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_quantity
</td>
<td>
1000.10
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only' and text()='1.000,100']
</td>
<td></td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only_percent' and text()='100010.00%']
</td>
<td></td></tr>
<tr><td>
type
</td>
<td>
field_my_quantity
</td>
<td>
0.99
</td></tr>
<tr><td>
type
</td>
<td>
field_your_first_failure
</td>
<td>
3
</td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/click_save"
/>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tal:block
tal:define=
"notification_configuration python: {'class': 'error',
'text': 'Input data has errors.'}"
>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification"
/>
</tal:block>
<tr>
<td
colspan=
"3"
><b>
Check validator string value
</b></td>
</tr>
<tr><td>
assertValue
</td>
<td>
field_my_quantity
</td>
<td>
0.99
</td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only' and text()='1.000,100']
</td>
<td></td></tr>
<tr><td>
assertElementPresent
</td>
<td>
//p[@id='field_my_quantity_read_only_percent' and text()='100010.00%']
</td>
<td></td></tr>
</tbody></table>
</body>
</html>
\ No newline at end of file
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