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
464cc93d
Commit
464cc93d
authored
Jul 25, 2017
by
Tomáš Peterka
Committed by
Tomáš Peterka
Jul 28, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[renderjs_ui] Search field in left panel has functional submit button
parent
f442aff2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
163 additions
and
22 deletions
+163
-22
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js
...hTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js
+32
-20
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml
...TemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml
+2
-2
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchInputQuery.xml
...tests/renderjs_ui_page_zuite/testPageSearchInputQuery.xml
+58
-0
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchInputQuery.zpt
...tests/renderjs_ui_page_zuite/testPageSearchInputQuery.zpt
+71
-0
No files found.
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js
View file @
464cc93d
...
@@ -118,7 +118,8 @@
...
@@ -118,7 +118,8 @@
})
})
.
push
(
function
(
search_gadget
)
{
.
push
(
function
(
search_gadget
)
{
return
search_gadget
.
render
({
return
search_gadget
.
render
({
focus
:
false
focus
:
false
,
extended_search
:
''
});
});
})
})
...
@@ -319,34 +320,45 @@
...
@@ -319,34 +320,45 @@
return
;
return
;
})
})
.
onEvent
(
'
submit
'
,
function
()
{
.
onEvent
(
'
submit
'
,
function
(
event
)
{
var
gadget
=
this
;
var
gadget
=
this
,
redirect_options
=
{
page
:
"
search
"
};
return
gadget
.
getDeclaredGadget
(
"
erp5_searchfield
"
)
return
gadget
.
getDeclaredGadget
(
"
erp5_searchfield
"
)
.
push
(
function
(
search_gadget
)
{
.
push
(
function
(
search_gadget
)
{
return
search_gadget
.
getContent
();
return
search_gadget
.
getContent
();
})
})
.
push
(
function
(
data
)
{
.
push
(
function
(
data
)
{
var
options
=
{
page
:
"
search
"
};
if
(
data
.
search
)
{
if
(
data
.
search
)
{
options
.
extended_search
=
data
.
search
;
redirect_
options
.
extended_search
=
data
.
search
;
}
}
// Remove focus from the search field
// don't redirect yet even when we have all necessary arguments
document
.
activeElement
.
blur
();
return
gadget
.
getDeclaredGadget
(
"
erp5_searchfield
"
);
return
gadget
.
redirect
({
command
:
'
display
'
,
options
:
options
});
})
.
push
(
function
(
search_gadget
)
{
// we want the search field in side panel to be empty and blured
// but the state of the search gadget is still empty and blurred
// because the search gadget does not catch onSubmit
// thus we need to modify its state with the submitted values
// and then modify it back to nothing so the "nothing" gets rendered
return
new
RSVP
.
Queue
()
.
push
(
function
()
{
return
search_gadget
.
render
({
extended_search
:
redirect_options
.
extended_search
,
});
})
.
push
(
function
()
{
return
search_gadget
.
render
({
extended_search
:
''
});
});
})
.
push
(
function
()
{
return
gadget
.
redirect
({
command
:
'
display
'
,
options
:
redirect_options
});
});
});
},
false
,
true
)
},
/*useCapture=*/
false
,
/*preventDefault=*/
true
);
.
onEvent
(
'
blur
'
,
function
(
evt
)
{
// XXX Horrible hack to clear the search when focus is lost
// This does not follow renderJS design, as a gadget should not touch
// another gadget content
if
(
evt
.
target
.
type
===
'
search
'
)
{
evt
.
target
.
value
=
""
;
}
},
true
,
false
);
}(
window
,
document
,
rJS
,
Handlebars
,
RSVP
,
Node
,
loopEventListener
));
}(
window
,
document
,
rJS
,
Handlebars
,
RSVP
,
Node
,
loopEventListener
));
bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml
View file @
464cc93d
...
@@ -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
58.33121.48203.5614
</string>
</value>
<value>
<string>
9
60.63261.10188.49271
</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
491816291.84
</float>
<float>
1
501172620.25
</float>
<string>
UTC
</string>
<string>
UTC
</string>
</tuple>
</tuple>
</state>
</state>
...
...
bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchInputQuery.xml
0 → 100644
View file @
464cc93d
<?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>
testPageSearchInputQuery
</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_page_zuite/testPageSearchInputQuery.zpt
0 → 100644
View file @
464cc93d
<!-- Test inputting a search query
- submit has to work using button with magnifying glass
- submit has to work on pressing enter <XXX how to do?>
- the search query has to appear above ListBox Field
- the search query has to dissapear from the panel's search input field
-->
<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 Page Search
</title>
</head>
<body>
<table
cellpadding=
"1"
cellspacing=
"1"
border=
"1"
>
<thead>
<tr><td
rowspan=
"1"
colspan=
"3"
>
Test Page Search
</td></tr>
</thead><tbody>
<tal:block
metal:use-macro=
"here/PTZuite_CommonTemplate/macros/init"
/>
<tr>
<td>
store
</td>
<td>
${base_url}/web_site_module/renderjs_runner/
</td>
<td>
runner_url
</td>
</tr>
<tr>
<td>
open
</td>
<td>
${runner_url}
</td>
<td></td>
</tr>
<!-- Wait for gadget to be loaded -->
<tr>
<td>
waitForElementPresent
</td>
<td>
//div[@data-gadget-url='${runner_url}gadget_erp5_panel.html']//div[@data-gadget-url='${runner_url}gadget_erp5_searchfield.html']
</td>
<td></td>
</tr>
<!-- Type search query and submit using button -->
<tr>
<td>
type
</td>
<td>
name=search
</td>
<td>
Title 1
</td>
</tr>
<tr>
<td>
click
</td>
<td>
//div[@data-gadget-url='${runner_url}gadget_erp5_panel.html']//div[@data-gadget-url='${runner_url}gadget_erp5_searchfield.html']//button[@type='submit']
</td>
<td></td>
</tr>
<tal:block
metal:use-macro=
"here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded"
/>
<!-- Verify that panel search query is empty but main search input is not -->
<tr>
<td>
waitForElementPresent
</td>
<td>
//div[@data-gadget-url='${runner_url}gadget_erp5_panel.html']//div[@data-gadget-url='${runner_url}gadget_erp5_searchfield.html']
</td>
<td></td>
</tr>
<tr>
<td>
verifyValue
</td>
<td>
//div[@data-gadget-url='${runner_url}gadget_erp5_panel.html']//div[@data-gadget-url='${runner_url}gadget_erp5_searchfield.html']//input[@name='search']
</td>
<td></td>
</tr>
<tr>
<td>
verifyValue
</td>
<td>
//div[@role="main"]//div[@data-gadget-url='${runner_url}gadget_erp5_searchfield.html']//input[@name='search']
</td>
<td>
Title 1
</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