Fixes traceback when sending # or ; from web remote search or alert field.

Fixes: https://launchpad.net/bugs/908226
This commit is contained in:
Mattias Põldaru 2012-03-13 02:58:30 +02:00
parent 83bf85208e
commit 8bd4ad02fd
1 changed files with 8 additions and 6 deletions

View File

@ -208,9 +208,8 @@ window.OpenLP = {
}, },
showAlert: function (event) { showAlert: function (event) {
event.preventDefault(); event.preventDefault();
var text = "{\"request\": {\"text\": \"" + var alert = OpenLP.escapeString($("#alert-text").val())
$("#alert-text").val().replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + var text = "{\"request\": {\"text\": \"" + alert + "\"}}";
"\"}}";
$.getJSON( $.getJSON(
"/api/alert", "/api/alert",
{"data": text}, {"data": text},
@ -221,9 +220,8 @@ window.OpenLP = {
}, },
search: function (event) { search: function (event) {
event.preventDefault(); event.preventDefault();
var text = "{\"request\": {\"text\": \"" + var query = OpenLP.escapeString($("#search-text").val())
$("#search-text").val().replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + var text = "{\"request\": {\"text\": \"" + query + "\"}}";
"\"}}";
$.getJSON( $.getJSON(
"/api/" + $("#search-plugin").val() + "/search", "/api/" + $("#search-plugin").val() + "/search",
{"data": text}, {"data": text},
@ -280,6 +278,10 @@ window.OpenLP = {
); );
$("#options").dialog("close"); $("#options").dialog("close");
$.mobile.changePage("#service-manager"); $.mobile.changePage("#service-manager");
},
escapeString: function (string) {
string = string.replace(/\\/g, "\\\\").replace(/"/g, "\\\"")
return string.replace(/#/g, "\\u0023").replace(/;/g, "\\u003B")
} }
} }
// Service Manager // Service Manager