Commit 81eca52d authored by Xiaowu Zhang's avatar Xiaowu Zhang

erp5_web_renderjs_ui: listbox in list_mode and form_view should be displayed as non editable

parent 1c81ac54
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
/*global window, rJS, RSVP, document, loopEventListener */\n /*global window, rJS, RSVP, document, loopEventListener */\n
/*jslint indent: 2 */\n /*jslint indent: 2 */\n
(function (window, rJS, RSVP) {\n (function (window, rJS, RSVP, document, loopEventListener) {\n
"use strict";\n "use strict";\n
rJS(window)\n rJS(window)\n
.ready(function (gadget) {\n .ready(function (gadget) {\n
...@@ -115,6 +115,9 @@ ...@@ -115,6 +115,9 @@
})\n })\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n .declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyValid", "notifyValid")\n .declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\') || "";\n
})\n
.declareMethod(\'render\', function (options) {\n .declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n var input = this.element.querySelector(\'input\'),\n
date,\n date,\n
...@@ -379,7 +382,7 @@ ...@@ -379,7 +382,7 @@
);\n );\n
});\n });\n
\n \n
}(window, rJS, RSVP)); }(window, rJS, RSVP, document, loopEventListener));
]]></string> </value> ]]></string> </value>
</item> </item>
...@@ -516,7 +519,7 @@ ...@@ -516,7 +519,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>943.49747.10334.23005</string> </value> <value> <string>949.15487.9675.47530</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -534,7 +537,7 @@ ...@@ -534,7 +537,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1434544511.89</float> <float>1455899218.47</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -114,6 +114,9 @@ ...@@ -114,6 +114,9 @@
.declareAcquiredMethod("notifyValid", "notifyValid")\n .declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n .declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyChange", "notifyChange")\n .declareAcquiredMethod("notifyChange", "notifyChange")\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\');\n
})\n
.declareMethod(\'render\', function (options) {\n .declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n var input = this.element.querySelector(\'input\'),\n
step = 0.00000001,\n step = 0.00000001,\n
...@@ -319,7 +322,7 @@ ...@@ -319,7 +322,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>xiaowu</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -333,7 +336,7 @@ ...@@ -333,7 +336,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>940.63306.33653.13909</string> </value> <value> <string>949.15478.31551.48810</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -351,7 +354,7 @@ ...@@ -351,7 +354,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1423907635.25</float> <float>1455899205.51</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -114,6 +114,9 @@ ...@@ -114,6 +114,9 @@
.declareAcquiredMethod("notifyValid", "notifyValid")\n .declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n .declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyChange", "notifyChange")\n .declareAcquiredMethod("notifyChange", "notifyChange")\n
.declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\');\n
})\n
.declareMethod(\'render\', function (options) {\n .declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n var input = this.element.querySelector(\'input\'),\n
field_json = options.field_json || {};\n field_json = options.field_json || {};\n
...@@ -313,7 +316,7 @@ ...@@ -313,7 +316,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>xiaowu</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -327,7 +330,7 @@ ...@@ -327,7 +330,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>940.60759.64011.7748</string> </value> <value> <string>949.15479.42024.21538</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -345,7 +348,7 @@ ...@@ -345,7 +348,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1423754481.36</float> <float>1455899193.71</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -173,17 +173,45 @@ ...@@ -173,17 +173,45 @@
gadget.props.listbox_uid_dict = {};\n gadget.props.listbox_uid_dict = {};\n
gadget.props.cell_gadget_list = [];\n gadget.props.cell_gadget_list = [];\n
function renderSubCell(element, sub_field_json) {\n function renderSubCell(element, sub_field_json) {\n
return gadget.getFieldTypeGadgetUrl(sub_field_json.type)\n var options = {},\n
queue;\n
sub_field_json.editable = sub_field_json.editable && gadget.props.field_json.editable; // XXX \n
queue = gadget.getFieldTypeGadgetUrl(sub_field_json.type);\n
queue\n
.push(function (gadget_url) {\n .push(function (gadget_url) {\n
return gadget.declareGadget(gadget_url, {\n if (sub_field_json.editable) {\n
element: element\n options = {\n
});\n element: element\n
};\n
}\n
return gadget.declareGadget(gadget_url, options);\n
})\n })\n
.push(function (cell_gadget) {\n .push(function (cell_gadget) {\n
gadget.props.cell_gadget_list.push(cell_gadget);\n if (sub_field_json.editable) {\n
sub_field_json.editable = sub_field_json.editable && gadget.props.field_json.editable; // XXX \n gadget.props.cell_gadget_list.push(cell_gadget);\n
} else {\n
if (cell_gadget.getTextContent) {\n
queue\n
.push(function () {\n
return cell_gadget.getTextContent();\n
})\n
.push(function (text_content) {\n
var text = document.createTextNode(text_content);\n
element.appendChild(text);\n
});\n
} else {\n
queue\n
.push(function () {\n
return cell_gadget.getElement();\n
})\n
.push(function (cell_element) {\n
element.appendChild(cell_element);\n
});\n
}\n
}\n
return cell_gadget.render({field_json: sub_field_json});\n return cell_gadget.render({field_json: sub_field_json});\n
});\n });\n
return queue;\n
}\n }\n
for (i = 0; i < element_list.length; i += 1) {\n for (i = 0; i < element_list.length; i += 1) {\n
column = element_list[i].getAttribute("column");\n column = element_list[i].getAttribute("column");\n
...@@ -498,7 +526,7 @@ ...@@ -498,7 +526,7 @@
value = result.data.rows[i].value[field_json.column_list[j][0]] || "";\n value = result.data.rows[i].value[field_json.column_list[j][0]] || "";\n
tr_value.push({\n tr_value.push({\n
"type": value.type,\n "type": value.type,\n
"editable": value.editable,\n "editable": value.editable && field_json.editable,\n
"href": tmp_url,\n "href": tmp_url,\n
"text": value,\n "text": value,\n
"line": i,\n "line": i,\n
...@@ -843,7 +871,7 @@ ...@@ -843,7 +871,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>949.16491.61409.54647</string> </value> <value> <string>949.16516.37897.4249</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -861,7 +889,7 @@ ...@@ -861,7 +889,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1455884364.32</float> <float>1455899151.12</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -134,6 +134,10 @@ ...@@ -134,6 +134,10 @@
.declareAcquiredMethod("translateHtml", "translateHtml")\n .declareAcquiredMethod("translateHtml", "translateHtml")\n
.declareAcquiredMethod("notifyValid", "notifyValid")\n .declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n .declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareMethod(\'getTextContent\', function () {\n
var select = this.element.querySelector(\'select\');\n
return select.options[select.selectedIndex || 0].text;\n
})\n
.declareMethod(\'render\', function (options) {\n .declareMethod(\'render\', function (options) {\n
var i,\n var i,\n
template,\n template,\n
...@@ -357,7 +361,7 @@ ...@@ -357,7 +361,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>940.49457.43407.46148</string> </value> <value> <string>949.15483.53582.15957</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -375,7 +379,7 @@ ...@@ -375,7 +379,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1423135404.46</float> <float>1455899167.96</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
......
...@@ -115,7 +115,9 @@ ...@@ -115,7 +115,9 @@
.declareAcquiredMethod("notifyValid", "notifyValid")\n .declareAcquiredMethod("notifyValid", "notifyValid")\n
.declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n .declareAcquiredMethod("notifyInvalid", "notifyInvalid")\n
.declareAcquiredMethod("notifyChange", "notifyChange")\n .declareAcquiredMethod("notifyChange", "notifyChange")\n
\n .declareMethod(\'getTextContent\', function () {\n
return this.element.querySelector(\'input\').getAttribute(\'value\');\n
})\n
.declareMethod(\'render\', function (options) {\n .declareMethod(\'render\', function (options) {\n
var input = this.element.querySelector(\'input\'),\n var input = this.element.querySelector(\'input\'),\n
field_json = options.field_json || {};\n field_json = options.field_json || {};\n
...@@ -317,7 +319,7 @@ ...@@ -317,7 +319,7 @@
</item> </item>
<item> <item>
<key> <string>actor</string> </key> <key> <string>actor</string> </key>
<value> <string>romain</string> </value> <value> <string>zope</string> </value>
</item> </item>
<item> <item>
<key> <string>comment</string> </key> <key> <string>comment</string> </key>
...@@ -331,7 +333,7 @@ ...@@ -331,7 +333,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>937.64311.60842.27084</string> </value> <value> <string>949.15479.27859.47018</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -349,8 +351,8 @@ ...@@ -349,8 +351,8 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1412257626.39</float> <float>1455899182.71</float>
<string>GMT</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
</object> </object>
......
...@@ -180,15 +180,15 @@ ...@@ -180,15 +180,15 @@
</tr>\n </tr>\n
\n \n
<tr>\n <tr>\n
<td>waitForElementPresent</td>\n <td>waitForTextPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n <td>2022-12-21</td>\n
<td></td>\n <td></td>\n
</tr>\n </tr>\n
\n \n
<tr>\n <tr>\n
<td>verifyValue</td>\n <td>waitForTextPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td>2022-12-21</td>\n <td>2022-12-21</td>\n
<td></td>\n
</tr>\n </tr>\n
\n \n
</tbody></table>\n </tbody></table>\n
......
<?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>_text</string> </key>
<value> <unicode encoding="cdata"><![CDATA[
<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
xmlns:metal="http://xml.zope.org/namespaces/metal">\n
<head>\n
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
<title>Test RenderJS UI</title>\n
</head>\n
<body>\n
<table cellpadding="1" cellspacing="1" border="1">\n
<thead>\n
<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>\n
</thead><tbody>\n
<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />\n
\n
<!-- Clean Up -->\n
<tr>\n
<td>open</td>\n
<td>${base_url}/bar_module/ListBoxZuite_reset</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>assertTextPresent</td>\n
<td>Reset Successfully.</td>\n
<td></td>\n
</tr>\n
\n
<!-- Initialize -->\n
<tr>\n
<td>open</td>\n
<td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n=\'Add\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>link=Add</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_your_portal_type\']</td>\n
<td>label=Foo</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n="Add"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="Add"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>link=Add</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>select</td>\n
<td>//select[@name=\'field_your_portal_type\']</td>\n
<td>label=Foo Line</td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//button[@data-i18n=\'Proceed\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//button[@data-i18n=\'Save\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n=\'Back\']</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td></td>\n
</tr>\n
\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="Tabs"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForElementPresent</td>\n
<td>//a[@data-i18n="View"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>click</td>\n
<td>//a[@data-i18n="View"]</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>waitForTextPresent</td>\n
<td>1</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyTextPresent</td>\n
<td>1</td>\n
<td></td>\n
</tr>\n
\n
<tr>\n
<td>verifyElementNotPresent</td>\n
<td>//input[@title="listbox_start_date"]</td>\n
<td></td>\n
</tr>\n
\n
\n
\n
</tbody></table>\n
</body>\n
</html>
]]></unicode> </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>testListboxInNoEditableMode</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>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment