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
alecs_myu
erp5
Commits
f4e03d67
Commit
f4e03d67
authored
Nov 09, 2017
by
Tomáš Peterka
Committed by
Tomáš Peterka
Nov 27, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[renderjs_ui] LinesField works in non-editable mode
/#/bug_module/20171103-82F24A /reviewed-on
nexedi/erp5!489
parent
4c925ae7
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
63 additions
and
71 deletions
+63
-71
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_linesfield_js.js
...lateItem/web_page_module/rjs_gadget_erp5_linesfield_js.js
+30
-56
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_linesfield_js.xml
...ateItem/web_page_module/rjs_gadget_erp5_linesfield_js.xml
+2
-2
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.js
...eItem/web_page_module/rjs_gadget_erp5_textareafield_js.js
+7
-0
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.xml
...Item/web_page_module/rjs_gadget_erp5_textareafield_js.xml
+2
-2
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_lines_field_zuite/testDialogLinesField.zpt
...ts/renderjs_ui_lines_field_zuite/testDialogLinesField.zpt
+8
-5
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_lines_field_zuite/testEmptyLine.zpt
...tal_tests/renderjs_ui_lines_field_zuite/testEmptyLine.zpt
+14
-6
No files found.
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_linesfield_js.js
View file @
f4e03d67
...
...
@@ -8,79 +8,53 @@
return
lines
;
}
function
listToBR
(
lines
)
{
if
(
Array
.
isArray
(
lines
))
{
return
lines
.
join
(
"
<br/>
\n
"
);
}
return
lines
;
}
rJS
(
window
)
.
declareMethod
(
'
render
'
,
function
(
options
)
{
return
this
.
changeState
(
options
.
field_json
);
.
setState
({
gadget_rendered
:
false
})
.
onStateChange
(
function
(
modification_dict
)
{
.
declareMethod
(
'
render
'
,
function
(
options
)
{
var
gadget
=
this
,
url
,
value
;
if
(
modification_dict
.
hasOwnProperty
(
'
editable
'
))
{
if
(
gadget
.
state
.
editable
)
{
url
=
'
gadget_html5_textarea.html
'
;
value
=
listToNewlines
(
gadget
.
state
.
value
||
gadget
.
state
.
default
||
[]);
}
else
{
url
=
'
gadget_html5_element.html
'
;
value
=
listToBR
(
gadget
.
state
.
value
||
gadget
.
state
.
default
||
[]);
}
return
this
.
declareGadget
(
url
,
{
scope
:
'
sub
'
})
.
push
(
function
(
sub_gadget
)
{
// Clear first to DOM, append after to reduce flickering/manip
while
(
gadget
.
element
.
firstChild
)
{
gadget
.
element
.
removeChild
(
gadget
.
element
.
firstChild
);
}
gadget
.
element
.
appendChild
(
sub_gadget
.
element
);
// Use full-blown render when the widget is new
return
sub_gadget
.
render
({
value
:
value
,
name
:
gadget
.
state
.
key
,
editable
:
gadget
.
state
.
editable
,
required
:
gadget
.
state
.
required
,
title
:
gadget
.
state
.
title
,
hidden
:
gadget
.
state
.
hidden
});
new_state
=
{
"
default
"
:
listToNewlines
(
options
.
field_json
.
default
),
"
editable
"
:
options
.
field_json
.
editable
,
"
required
"
:
options
.
field_json
.
required
,
"
hidden
"
:
options
.
field_json
.
hidden
,
"
title
"
:
options
.
field_json
.
title
,
"
key
"
:
options
.
field_json
.
key
};
if
(
this
.
state
.
gadget_rendered
===
false
)
{
return
gadget
.
declareGadget
(
"
gadget_erp5_field_textarea.html
"
,
{
scope
:
'
sub
'
})
.
push
(
function
(
subgadget
)
{
gadget
.
element
.
appendChild
(
subgadget
.
element
);
new_state
.
gadget_rendered
=
true
;
return
gadget
.
changeState
(
new_state
);
});
}
return
this
.
changeState
(
new_state
);
})
return
gadget
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
input
)
{
if
(
modification_dict
.
hasOwnProperty
(
"
value
"
))
{
if
(
gadget
.
state
.
editable
)
{
modification_dict
.
value
=
listToNewlines
(
modification_dict
.
value
);
}
else
{
modification_dict
.
value
=
listToBR
(
modification_dict
.
value
);
}
}
// when we only receive changes we can simply pass (minimaly modified) modification dictionary
return
input
.
render
(
modification_dict
);
.
onStateChange
(
function
()
{
var
gadget
=
this
;
return
this
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
subgadget
)
{
return
subgadget
.
render
({
field_json
:
gadget
.
state
});
});
})
.
declareMethod
(
'
getContent
'
,
function
()
{
var
gadget
=
this
;
return
gadget
.
getDeclaredGadget
(
'
sub
'
)
return
this
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
sub_gadget
)
{
return
sub_gadget
.
getContent
();
});
})
.
declareMethod
(
'
checkValidity
'
,
function
()
{
if
(
this
.
state
.
editable
)
{
return
this
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
gadget
)
{
return
gadget
.
checkValidity
();
});
}
return
true
;
return
this
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
subgadget
)
{
return
subgadget
.
checkValidity
();
});
});
}(
window
,
rJS
));
\ No newline at end of file
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_linesfield_js.xml
View file @
f4e03d67
...
...
@@ -230,7 +230,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
96
1.56527.16709.20804
</string>
</value>
<value>
<string>
96
3.41690.30150.51729
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -248,7 +248,7 @@
</tuple>
<state>
<tuple>
<float>
151
0071879.23
</float>
<float>
151
1408348.35
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.js
View file @
f4e03d67
...
...
@@ -50,6 +50,13 @@
});
})
.
declareMethod
(
'
checkValidity
'
,
function
()
{
return
this
.
getDeclaredGadget
(
'
sub
'
)
.
push
(
function
(
subgadget
)
{
return
subgadget
.
checkValidity
();
});
})
.
declareMethod
(
'
getContent
'
,
function
()
{
if
(
this
.
state
.
editable
)
{
return
this
.
getDeclaredGadget
(
'
sub
'
)
...
...
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.xml
View file @
f4e03d67
...
...
@@ -236,7 +236,7 @@
</item>
<item>
<key>
<string>
serial
</string>
</key>
<value>
<string>
9
54.45675.44850.53452
</string>
</value>
<value>
<string>
9
60.5523.58984.43537
</string>
</value>
</item>
<item>
<key>
<string>
state
</string>
</key>
...
...
@@ -254,7 +254,7 @@
</tuple>
<state>
<tuple>
<float>
1
479375229.95
</float>
<float>
1
511311791.54
</float>
<string>
UTC
</string>
</tuple>
</state>
...
...
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_lines_field_zuite/testDialogLinesField.zpt
View file @
f4e03d67
...
...
@@ -22,7 +22,8 @@
<td>
//div[@data-gadget-url="${renderjs_url}/gadget_erp5_field_lines.html"]//textarea
</td><td></td></tr>
<tr><td>
type
</td>
<td>
field_my_lines_list
</td>
<td>
foo
<br/>
bar
</td></tr>
<td>
foo
<br/>
<!-- tags and comments get stripped away -->
bar
</td></tr>
<!-- Change sorting of the listbox -->
<tr><td>
waitForElementPresent
</td>
...
...
@@ -32,7 +33,8 @@
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<tr><td>
assertValue
</td>
<td>
//textarea[@name='field_my_lines_list']
</td>
<td>
foo
<br/>
bar
</td></tr>
<td>
foo
<br/>
bar
</td></tr>
<!-- Save and force unloading of Form and its content from the memory by going back -->
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
...
...
@@ -49,10 +51,12 @@
<!-- Assert value still holds and change it -->
<tr><td>
assertValue
</td>
<td>
//textarea[@name='field_my_lines_list']
</td>
<td>
foo
<br/>
bar
</td></tr>
<td>
foo
<br/>
bar
</td></tr>
<tr><td>
assertValue
</td>
<td>
//textarea[@name='field_my_lines_list']
</td>
<td>
foo
<br/>
bar
</td></tr>
<td>
foo
<br/>
bar
</td></tr>
<tr><td>
type
</td>
<td>
//textarea[@name='field_my_lines_list']
</td>
<td>
foo bar
</td></tr>
...
...
@@ -68,7 +72,6 @@
<!-- Save and force unloading of Form and its content from the memory by going back -->
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<tr><td>
click
</td>
<td>
//div[@data-role='header']//h1/a
</td><td></td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
...
...
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_lines_field_zuite/testEmptyLine.zpt
View file @
f4e03d67
...
...
@@ -25,12 +25,7 @@
<td>
a
b
</td></tr>
<tr><td>
waitForElementPresent
</td>
<td>
//button[@data-i18n='Save']
</td><td></td></tr>
<tr><td>
click
</td>
<td>
//button[@data-i18n='Save']
</td><td></td></tr>
<tr><td>
waitForTextPresent
</td>
<td>
Data updated.
</td><td></td></tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/save"
/>
<!-- Force unloading of Form and its content from the memory by going back -->
<tr><td>
click
</td>
<td>
//div[@data-role='header']//h1/a
</td><td></td></tr>
...
...
@@ -46,5 +41,18 @@ b
<td>
a
b
</td></tr>
<tr><td>
click
</td>
<td>
//button[@name='panel']
</td><td></td></tr>
<tr><td>
waitForElementPresent
</td>
<td>
//div[@data-gadget-url="${renderjs_url}/gadget_erp5_panel.html"]//input[@name='editable' and @type='checkbox']
</td><td></td></tr>
<tr><td>
click
</td>
<td>
//div[@data-gadget-url="${renderjs_url}/gadget_erp5_panel.html"]//input[@name='editable' and @type='checkbox']
</td><td></td></tr>
<tr><td>
waitForElementPresent
</td>
<td>
//div[@data-gadget-url="${renderjs_url}/gadget_erp5_field_lines.html"]//div[@data-gadget-url="${renderjs_url}/gadget_html5_element.html"]/pre
</td><td></td></tr>
<tr><td>
assertText
</td>
<td>
//div[@data-gadget-url="${renderjs_url}/gadget_erp5_field_lines.html"]//div[@data-gadget-url="${renderjs_url}/gadget_html5_element.html"]/pre
</td>
<td>
a
b
</td></tr>
</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