From e01e2f65a2dcf919ab30af7a8ff2517668cf0497 Mon Sep 17 00:00:00 2001 From: labkey-matthewb Date: Thu, 1 Feb 2024 17:01:07 -0800 Subject: [PATCH] migrate code to use JsonUtil and JavaScriptFragment (#728) --- .../editscript/CompensationCalculationPage.java | 8 ++++---- .../editscript/editCompensationCalculation.jsp | 8 ++++---- .../org/labkey/flow/controllers/run/StatusJsonHelper.java | 3 ++- flow/src/org/labkey/flow/controllers/well/showWell.jsp | 5 +++-- flow/src/org/labkey/flow/reports/statPicker.jsp | 3 ++- flow/src/org/labkey/flow/view/ExportAnalysisManifest.java | 3 ++- flow/src/org/labkey/flow/view/setComment.jsp | 2 +- nab/src/org/labkey/nab/view/nabQC.jsp | 7 ++++--- 8 files changed, 22 insertions(+), 17 deletions(-) diff --git a/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java b/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java index 109ce431b5..8d130bb18f 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java +++ b/flow/src/org/labkey/flow/controllers/editscript/CompensationCalculationPage.java @@ -18,7 +18,9 @@ import org.apache.commons.lang3.StringUtils; import org.fhcrc.cpas.flow.script.xml.*; +import org.json.JSONArray; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.JavaScriptFragment; import org.labkey.flow.analysis.model.Analysis; import org.labkey.flow.analysis.model.AutoCompensationScript; import org.labkey.flow.analysis.model.Population; @@ -217,11 +219,9 @@ public String javascriptArray(List strings) return "['" + StringUtils.join(strings, "',\n'") + "']"; } - public String javascriptArray(String... strings) + public JSONArray javascriptArray(String... strings) { - if (strings.length == 0) - return "[]"; - return "['" + StringUtils.join(strings, "',\n'") + "']"; + return new JSONArray(strings); } public String option(String value, String display, String currentValue) diff --git a/flow/src/org/labkey/flow/controllers/editscript/editCompensationCalculation.jsp b/flow/src/org/labkey/flow/controllers/editscript/editCompensationCalculation.jsp index 0a8c5ad095..b08a05761a 100644 --- a/flow/src/org/labkey/flow/controllers/editscript/editCompensationCalculation.jsp +++ b/flow/src/org/labkey/flow/controllers/editscript/editCompensationCalculation.jsp @@ -33,7 +33,7 @@ <%=getScriptTag("/Flow/editCompensationCalculation.js")%> <% diff --git a/flow/src/org/labkey/flow/reports/statPicker.jsp b/flow/src/org/labkey/flow/reports/statPicker.jsp index 751f7ce6b6..d893d0dbff 100644 --- a/flow/src/org/labkey/flow/reports/statPicker.jsp +++ b/flow/src/org/labkey/flow/reports/statPicker.jsp @@ -30,6 +30,7 @@ <%@ page import="java.util.Collection" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.stream.Stream" %> +<%@ page import="org.labkey.api.util.JavaScriptFragment" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <%! @Override @@ -379,7 +380,7 @@ function createStatStore(stats) let FlowPropertySet = {}; FlowPropertySet.keywords = <%=toJsonArray(fps.getVisibleKeywords())%>; -FlowPropertySet.statistics = <%=unsafe(jsonStats.toString())%>; +FlowPropertySet.statistics = <%=JavaScriptFragment.unsafe(jsonStats.toString())%>; let SampleType = {}; SampleType.properties = <%=toJsonArray(sampleTypeProperties)%>; diff --git a/flow/src/org/labkey/flow/view/ExportAnalysisManifest.java b/flow/src/org/labkey/flow/view/ExportAnalysisManifest.java index 309808fedd..896fffbd3a 100644 --- a/flow/src/org/labkey/flow/view/ExportAnalysisManifest.java +++ b/flow/src/org/labkey/flow/view/ExportAnalysisManifest.java @@ -25,6 +25,7 @@ import org.json.JSONObject; import org.junit.Assert; import org.junit.Test; +import org.labkey.api.util.JsonUtil; import org.labkey.flow.analysis.model.SampleIdMap; import java.io.IOException; @@ -136,7 +137,7 @@ public String toJSON() { StringWriter sw = new StringWriter(); JsonGenerator jsonGen = new JsonFactory().createGenerator(sw); - ObjectMapper oc = new ObjectMapper(); + ObjectMapper oc = JsonUtil.createDefaultMapper(); String dateFormat = "yyyy-MM-dd HH:mm:ss"; DateFormat df = new SimpleDateFormat(dateFormat); oc.setDateFormat(df); diff --git a/flow/src/org/labkey/flow/view/setComment.jsp b/flow/src/org/labkey/flow/view/setComment.jsp index 1fa80646a1..7ab4e04bf6 100644 --- a/flow/src/org/labkey/flow/view/setComment.jsp +++ b/flow/src/org/labkey/flow/view/setComment.jsp @@ -69,7 +69,7 @@ LABKEY.requiresExt3(function() { this.statusMessage('loading', "Updating..."); Ext.Ajax.request({ - url: "<%=unsafe(setFlagUrl.toString())%>&comment=" + encodeURIComponent(textField.getValue()), + url: <%=q(setFlagUrl + "&comment=")%> + encodeURIComponent(textField.getValue()), method : 'POST', success: function (response) { this.statusMessage('success', "Comment updated"); diff --git a/nab/src/org/labkey/nab/view/nabQC.jsp b/nab/src/org/labkey/nab/view/nabQC.jsp index 38a4b55284..6271a28e61 100644 --- a/nab/src/org/labkey/nab/view/nabQC.jsp +++ b/nab/src/org/labkey/nab/view/nabQC.jsp @@ -31,6 +31,8 @@ <%@ page import="static org.labkey.api.util.DOM.cl" %> <%@ page import="static org.labkey.api.util.DOM.DIV" %> <%@ page import="static org.labkey.api.util.DOM.createHtml" %> +<%@ page import="org.labkey.api.util.JsonUtil" %> +<%@ page import="org.labkey.api.util.JavaScriptFragment" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <%! @Override @@ -43,7 +45,6 @@ JspView me = (JspView) HttpView.currentView(); NabAssayController.NabQCForm bean = me.getModelBean(); DilutionAssayRun assay = bean.getAssay(); - ObjectMapper jsonMapper = new ObjectMapper(); HtmlString errorMsg = HtmlString.EMPTY_STRING; // run properties array @@ -95,8 +96,8 @@ runId : <%=bean.getRunId()%>, returnUrl : <%=q(bean.getReturnUrl(getContainer()))%>, runName : <%=q(assay.getRunName())%>, - runProperties : <%=unsafe(jsonMapper.writeValueAsString(runProperties))%>, - controlProperties : <%=unsafe(jsonMapper.writeValueAsString(controlProperties))%> + runProperties : <%=JavaScriptFragment.asJson(runProperties)%>, + controlProperties : <%=JavaScriptFragment.asJson(controlProperties)%> }); }); <%