Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
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
Titouan Soulard
slapos.core
Commits
4ba8324e
Commit
4ba8324e
authored
May 30, 2023
by
Rafael Monnerat
👻
Browse files
Options
Browse Files
Download
Plain Diff
Render an text input if the value isn't Integer/Float
See merge request
nexedi/slapos.core!533
parents
c3922f77
8f339e65
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
376 additions
and
7 deletions
+376
-7
master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_json_form_js.js
...web_page_module/rjs_gadget_erp5_page_slap_json_form_js.js
+33
-5
master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_json_form_js.xml
...eb_page_module/rjs_gadget_erp5_page_slap_json_form_js.xml
+2
-2
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidIntegerParameter.xml
...estSlapOSJSTestParameterEditorInvalidIntegerParameter.xml
+62
-0
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidIntegerParameter.zpt
...estSlapOSJSTestParameterEditorInvalidIntegerParameter.zpt
+108
-0
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidJsonInXMLIntegerParameter.xml
...JSTestParameterEditorInvalidJsonInXMLIntegerParameter.xml
+62
-0
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidJsonInXMLIntegerParameter.zpt
...JSTestParameterEditorInvalidJsonInXMLIntegerParameter.zpt
+109
-0
No files found.
master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_json_form_js.js
View file @
4ba8324e
/*jslint nomen: true, maxlen: 200, indent: 2, unparam: true*/
/*jslint nomen: true, maxlen: 200, indent: 2, unparam: true*/
/*global window, rJS, domsugar, Boolean, btoa, atob */
/*global window, rJS, domsugar, Boolean, btoa, atob
, Number
*/
(
function
(
window
,
rJS
,
domsugar
,
Boolean
,
btoa
,
atob
)
{
(
function
(
window
,
rJS
,
domsugar
,
Boolean
,
btoa
,
atob
,
Number
)
{
"
use strict
"
;
"
use strict
"
;
function
render_selection
(
json_field
,
default_value
,
is_required
,
editable
)
{
function
render_selection
(
json_field
,
default_value
,
is_required
,
editable
)
{
...
@@ -128,6 +128,34 @@
...
@@ -128,6 +128,34 @@
return
input
;
return
input
;
}
}
function
testInteger
(
value
)
{
var
parsed_value
;
if
(
value
===
undefined
||
value
===
""
)
{
// Value is empty so it is ok to render the field
return
true
;
}
parsed_value
=
parseFloat
(
value
);
if
(
!
isNaN
(
parsed_value
)
&&
(
Number
.
isInteger
(
parsed_value
)))
{
return
true
;
}
return
false
;
}
function
testNumber
(
value
)
{
var
parsed_value
;
if
(
value
===
undefined
||
value
===
""
)
{
// Value is empty so it is ok to render the field
return
true
;
}
parsed_value
=
parseFloat
(
value
);
if
(
!
isNaN
(
parsed_value
))
{
return
true
;
}
return
false
;
}
function
render_field
(
json_field
,
default_value
,
is_required
,
editable
)
{
function
render_field
(
json_field
,
default_value
,
is_required
,
editable
)
{
var
input
,
var
input
,
data_format
,
data_format
,
...
@@ -169,9 +197,9 @@
...
@@ -169,9 +197,9 @@
domsugar_input_dict
.
value
=
default_value
;
domsugar_input_dict
.
value
=
default_value
;
}
}
if
(
json_field
.
type
===
"
integer
"
)
{
if
(
json_field
.
type
===
"
integer
"
&&
testInteger
(
default_value
)
)
{
domsugar_input_dict
.
type
=
"
number
"
;
domsugar_input_dict
.
type
=
"
number
"
;
}
else
if
(
json_field
.
type
===
"
number
"
)
{
}
else
if
(
json_field
.
type
===
"
number
"
&&
testNumber
(
default_value
)
)
{
domsugar_input_dict
.
type
=
"
number
"
;
domsugar_input_dict
.
type
=
"
number
"
;
domsugar_input_dict
.
step
=
"
any
"
;
domsugar_input_dict
.
step
=
"
any
"
;
}
else
if
(
json_field
.
type
===
"
hidden
"
)
{
}
else
if
(
json_field
.
type
===
"
hidden
"
)
{
...
@@ -641,4 +669,4 @@
...
@@ -641,4 +669,4 @@
});
});
},
{
mutex
:
'
statechange
'
});
},
{
mutex
:
'
statechange
'
});
}(
window
,
rJS
,
domsugar
,
Boolean
,
btoa
,
atob
));
}(
window
,
rJS
,
domsugar
,
Boolean
,
btoa
,
atob
,
Number
));
master/bt5/slapos_jio/PathTemplateItem/web_page_module/rjs_gadget_erp5_page_slap_json_form_js.xml
View file @
4ba8324e
...
@@ -282,7 +282,7 @@
...
@@ -282,7 +282,7 @@
</item>
</item>
<item>
<item>
<key>
<string>
serial
</string>
</key>
<key>
<string>
serial
</string>
</key>
<value>
<string>
1008.
808.61596.8721
</string>
</value>
<value>
<string>
1008.
44146.47863.60757
</string>
</value>
</item>
</item>
<item>
<item>
<key>
<string>
state
</string>
</key>
<key>
<string>
state
</string>
</key>
...
@@ -302,7 +302,7 @@
...
@@ -302,7 +302,7 @@
</tuple>
</tuple>
<state>
<state>
<tuple>
<tuple>
<float>
168
2619529.51
</float>
<float>
168
5377921.85
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidIntegerParameter.xml
0 → 100644
View file @
4ba8324e
<?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=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</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>
testSlapOSJSTestParameterEditorInvalidIntegerParameter
</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>
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidIntegerParameter.zpt
0 → 100644
View file @
4ba8324e
<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 Parameter editor Change Serialisation
</title>
</head>
<body>
<table
cellpadding=
"1"
cellspacing=
"1"
border=
"1"
>
<thead>
<tr>
<td
rowspan=
"1"
colspan=
"3"
>
Test Parameter editor (Change Serialisation)
</td>
</tr>
</thead>
<tbody>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/init"
/>
<tr>
<td
colspan=
"3"
><b>
Set URL for the software release
</b></td>
</tr>
<tr>
<td>
type
</td>
<td>
//input[@name='url_string']
</td>
<td>
${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg
</td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSCommonTemplate/macros/click_proceed"
/>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection_default"
/>
<tr>
<td>
waitForElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="number"]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="number"]
</td>
<td></td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter"
/>
<tr>
<td>
waitForElementPresent
</td>
<td>
//textarea[@name="text_content" and contains(text(), '
<
instance/
>
')]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//textarea[@name="text_content" and contains(text(), '
<
instance/
>
')]
</td>
<td></td>
</tr>
<tr>
<td>
type
</td>
<td>
//textarea[@name="text_content"]
</td>
<td>
<
?xml version=
"
1.0
"
encoding=
"
UTF-8
"
?
><
instance
><
parameter id=
"
simple-numeric-integer
">
b
<
/parameter
><
parameter id=
"
simple-numeric-float
">
z
<
/parameter
><
/instance
>
</td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter"
/>
<tr>
<td>
waitForElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertValue
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="text"]
</td>
<td>
b
</td>
</tr>
<tr>
<td>
waitForElementPresent
</td>
<td>
//input[@name="//simple-numeric-float" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//input[@name="//simple-numeric-float" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertValue
</td>
<td>
//input[@name="//simple-numeric-float" and @type="text"]
</td>
<td>
z
</td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash"
/>
<tr>
<td>
waitForTextPresent
</td>
<td>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ
</td>
<td></td>
</tr>
<tr>
<td>
assertTextPresent
</td>
<td>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtaW50ZWdlciI+YjwvcGFyYW1ldGVyPgogICAgPHBhcmFtZXRlciBpZD0ic2ltcGxlLW51bWVyaWMtZmxvYXQiPno8L3BhcmFtZXRlcj4KPC9pbnN0YW5jZT4=
</td>
<td></td>
</tr>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidJsonInXMLIntegerParameter.xml
0 → 100644
View file @
4ba8324e
<?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=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</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>
testSlapOSJSTestParameterEditorInvalidJsonInXMLIntegerParameter
</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>
master/bt5/slapos_jio_ui_test/PathTemplateItem/portal_tests/slaposjs_zuite/testSlapOSJSTestParameterEditorInvalidJsonInXMLIntegerParameter.zpt
0 → 100644
View file @
4ba8324e
<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 Parameter editor Change Serialisation
</title>
</head>
<body>
<table
cellpadding=
"1"
cellspacing=
"1"
border=
"1"
>
<thead>
<tr>
<td
rowspan=
"1"
colspan=
"3"
>
Test Parameter editor (Change Serialisation)
</td>
</tr>
</thead>
<tbody>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/init"
/>
<tr>
<td
colspan=
"3"
><b>
Set URL for the software release
</b></td>
</tr>
<tr>
<td>
type
</td>
<td>
//input[@name='url_string']
</td>
<td>
${base_url}/web_site_module/hostingjs/hateoas/sample-software-schema/simpledemo/software.cfg
</td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSCommonTemplate/macros/click_proceed"
/>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/wait_software_type_selection"
/>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/select_software_type_json_in_xml"
/>
<tr>
<td>
waitForElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="number"]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="number"]
</td>
<td></td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/show_raw_parameter"
/>
<tr>
<td>
waitForElementPresent
</td>
<td>
//textarea[@name="text_content" and contains(text(), '{}')]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//textarea[@name="text_content" and contains(text(), '{}')]
</td>
<td></td>
</tr>
<tr>
<td>
type
</td>
<td>
//textarea[@name="text_content"]
</td>
<td>
<
?xml version=
"
1.0
"
encoding=
"
UTF-8
"
?
><
instance
><
parameter id=
"
_
">
{
"
simple-numeric-integer
"
:
"
b
"
,
"
simple-numeric-float
"
:
"
z
"
}
<
/parameter
><
/instance
>
</td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/show_form_parameter"
/>
<tr>
<td>
waitForElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertValue
</td>
<td>
//input[@name="//simple-numeric-integer" and @type="text"]
</td>
<td>
b
</td>
</tr>
<tr>
<td>
waitForElementPresent
</td>
<td>
//input[@name="//simple-numeric-float" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertElementPresent
</td>
<td>
//input[@name="//simple-numeric-float" and @type="text"]
</td>
<td></td>
</tr>
<tr>
<td>
assertValue
</td>
<td>
//input[@name="//simple-numeric-float" and @type="text"]
</td>
<td>
z
</td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_SlapOSParameterCommonTemplate/macros/click_proceed_and_wait_for_hash"
/>
<tr>
<td>
waitForTextPresent
</td>
<td>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZ
</td>
<td></td>
</tr>
<tr>
<td>
assertTextPresent
</td>
<td>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGluc3RhbmNlPgogICAgPHBhcmFtZXRlciBpZD0iXyI+ewogICAgInNpbXBsZS1udW1lcmljLWludGVnZXIiOiAiYiIsCiAgICAic2ltcGxlLW51bWVyaWMtZmxvYXQiOiAieiIKfTwvcGFyYW1ldGVyPgo8L2luc3RhbmNlPg==
</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