From e8840bdc2361d85522e6ce7af323b9e8fa26e5f9 Mon Sep 17 00:00:00 2001 From: hjkhjk54 Date: Mon, 6 Aug 2012 19:33:42 +0000 Subject: [PATCH] Updates for handling single and double quotes in html and sparql data getters --- .../utils/ProcessSparqlDataGetterN3.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/utils/ProcessSparqlDataGetterN3.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/utils/ProcessSparqlDataGetterN3.java index 8a8efde49..7c82f7fc5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/utils/ProcessSparqlDataGetterN3.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/utils/ProcessSparqlDataGetterN3.java @@ -160,9 +160,16 @@ public class ProcessSparqlDataGetterN3 extends ProcessDataGetterAbstract { QuerySolution qs = results.nextSolution(); Literal saveToVarLiteral = qs.getLiteral("saveToVar"); Literal queryLiteral = qs.getLiteral("query"); + String queryString = queryLiteral.getString(); + //we are saving the actual quotes in the n3 as escaped + //so for the json object we need to convert them into encoded + //quotes that will be reconverted on the client side for display + //Not converting them will either result in an incorrect json object + //or incorrect html + queryString = replaceQuotes(queryString); Resource queryModelResource = qs.getResource("queryModel"); jObject.element("saveToVar", saveToVarLiteral.getString()); - jObject.element("query", queryLiteral.getString()); + jObject.element("query",queryString); if(queryModelResource != null) { jObject.element("queryModel", queryModelResource.getURI()); } else { @@ -176,6 +183,12 @@ public class ProcessSparqlDataGetterN3 extends ProcessDataGetterAbstract { return jObject; } + + //Escape single and double quotes for html string to be returned to form + public String replaceQuotes(String inputStr) { + return inputStr.replaceAll("\'", "'").replaceAll("\"", """); + + } }