Commit c496ff02 authored by Xiaowu Zhang's avatar Xiaowu Zhang

erp5_web_renderjs_ui: don't crash interface for failing query

parent d9259433
......@@ -1121,6 +1121,10 @@ html table thead th[colspan] {\n
text-align: center;\n
}\n
\n
html .ui-listbox-error {\n
text-align: center;\n
}\n
\n
/* cell background */\n
html table thead tr,\n
html table tfoot tr,\n
......@@ -5215,7 +5219,7 @@ html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after {\n
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>948.40163.31953.33774</string> </value>
<value> <string>949.1052.3508.62634</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -5233,7 +5237,7 @@ html .ui-panel .ui-content .ui-btn[class*="ui-icon-"]:after {\n
</tuple>
<state>
<tuple>
<float>1453373898.88</float>
<float>1454957135.51</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -253,7 +253,18 @@
</table>\n
</div>\n
</script>\n
\n
\n
\n
\n
<script id="error-message-template" type="text/x-handlebars-template">\n
<div class="ui-listbox-error">\n
\t\t <a class="ui-btn ui-corner-all ui-btn-inline" href="{{reset_url}}">\n
\t\t <span style="color:red" data-i18n="Invalid Search Criteria">Invalid Search Criteria</span>\n
\t\t <span>-</span>\n
<span data-i18n="Reset">Reset</span>\n
</a>\n
</div>\n
</script>\n
\n
</head>\n
<body>\n
......@@ -397,7 +408,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>948.8903.55441.44066</string> </value>
<value> <string>949.1053.41653.819</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -415,7 +426,7 @@
</tuple>
<state>
<tuple>
<float>1451495552.88</float>
<float>1454957159.48</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -109,9 +109,9 @@
/*jslint indent: 2, maxerr: 3, nomen: true */\n
/*global window, document, rJS, URI, RSVP, loopEventListener,\n
SimpleQuery, ComplexQuery, Query, Handlebars*/\n
SimpleQuery, ComplexQuery, Query, Handlebars, console*/\n
(function (window, document, rJS, URI, RSVP, loopEventListener,\n
SimpleQuery, ComplexQuery, Query, Handlebars) {\n
SimpleQuery, ComplexQuery, Query, Handlebars, console) {\n
"use strict";\n
var gadget_klass = rJS(window),\n
listbox_hidden_thead_source = gadget_klass.__template_element\n
......@@ -140,7 +140,12 @@
listbox_source = gadget_klass.__template_element\n
.getElementById("listbox-template")\n
.innerHTML,\n
listbox_template = Handlebars.compile(listbox_source);\n
listbox_template = Handlebars.compile(listbox_source),\n
\n
error_message_source = gadget_klass.__template_element\n
.getElementById("error-message-template")\n
.innerHTML,\n
error_message_template = Handlebars.compile(error_message_source);\n
\n
\n
function renderListboxThead(gadget, template) {\n
......@@ -248,6 +253,22 @@
));\n
}\n
\n
\n
function renderErrorMessage(gadget) {\n
return gadget.getUrlFor({\n
command: \'store_and_change\',\n
options: {\n
"extended_search": ""\n
}\n
})\n
.push(function (url) {\n
return gadget.translateHtml(error_message_template(\n
{\n
\'reset_url\' : url\n
}\n
));\n
});\n
}\n
\n
rJS(window)\n
/////////////////////////////////////////////////////////////////\n
......@@ -388,6 +409,7 @@
select_list = [],\n
dataset,\n
counter,\n
queue,\n
i;\n
\n
if (field_json.query === undefined) {\n
......@@ -411,14 +433,26 @@
select_list.push(field_json.column_list[i][0]);\n
}\n
select_list.push("uid");\n
return gadget.jio_allDocs({\n
queue = gadget.jio_allDocs({\n
// XXX Not jIO compatible, but until a better api is found...\n
"list_method_template": field_json.list_method_template,\n
"query": query_string,\n
"limit": [begin_from, lines + 1],\n
"select_list": select_list,\n
"sort_on": gadget.props.sort_list\n
}).push(function (result) {\n
});\n
queue\n
.push(undefined, function (error) {\n
//XXXXX hack to not crash interface\n
//this will catch all error, not only search criteria invalid error\n
console.warn(error);\n
return renderErrorMessage(gadget)\n
.push(function (error_html) {\n
gadget.props.element.querySelector(".document_table").innerHTML = error_html;\n
queue.cancel();\n
});\n
})\n
.push(function (result) {\n
var promise_list = [result];\n
counter = Math.min(result.data.total_rows, lines);\n
for (i = 0; i < counter; i += 1) {\n
......@@ -514,6 +548,7 @@
}).push(function (my_html) {\n
gadget.props.element.querySelector(".tfoot").innerHTML = my_html;\n
});\n
return queue;\n
})\n
\n
\n
......@@ -657,7 +692,7 @@
});\n
\n
}(window, document, rJS, URI, RSVP, loopEventListener,\n
SimpleQuery, ComplexQuery, Query, Handlebars));
SimpleQuery, ComplexQuery, Query, Handlebars, console));
]]></string> </value>
</item>
......@@ -794,7 +829,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>948.8931.54995.63897</string> </value>
<value> <string>949.2121.3637.17544</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -812,7 +847,7 @@
</tuple>
<state>
<tuple>
<float>1451497439.76</float>
<float>1455022186.29</float>
<string>UTC</string>
</tuple>
</state>
......
......@@ -103,9 +103,9 @@
/*jslint indent: 2, maxerr: 3, maxlen: 100, nomen: true */\n
/*global window, document, rJS, RSVP, Handlebars, $, loopEventListener,\n
QueryFactory, SimpleQuery, ComplexQuery, Query*/\n
QueryFactory, SimpleQuery, ComplexQuery, Query, console*/\n
(function (window, document, rJS, RSVP, Handlebars, $, loopEventListener,\n
QueryFactory, SimpleQuery, ComplexQuery, Query) {\n
QueryFactory, SimpleQuery, ComplexQuery, Query, console) {\n
"use strict";\n
var gadget_klass = rJS(window),\n
filter_item_source = gadget_klass.__template_element\n
......@@ -319,7 +319,14 @@
query_list;\n
if (gadget.props.extended_search) {\n
//string to query\n
try {\n
query_list = QueryFactory.create(gadget.props.extended_search);\n
} catch (error) {\n
//XXXX hack to not crash interface\n
//it catch all error, not only search criteria invalid error\n
console.warn(error);\n
return;\n
}\n
if (query_list.operator === "OR") {\n
or.checked = true;\n
and.checked = false;\n
......@@ -476,7 +483,7 @@
});\n
\n
}(window, document, rJS, RSVP, Handlebars, $, loopEventListener,\n
QueryFactory, SimpleQuery, ComplexQuery, Query));
QueryFactory, SimpleQuery, ComplexQuery, Query, console));
]]></string> </value>
</item>
......@@ -613,7 +620,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>947.29484.5127.28433</string> </value>
<value> <string>949.2121.59518.17646</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -631,7 +638,7 @@
</tuple>
<state>
<tuple>
<float>1448903443.33</float>
<float>1455022145.56</float>
<string>UTC</string>
</tuple>
</state>
......
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