Skip to content

Commit

Permalink
migrate code to use JsonUtil and JavaScriptFragment (#728)
Browse files Browse the repository at this point in the history
  • Loading branch information
labkey-matthewb authored Feb 2, 2024
1 parent 5322bcf commit e01e2f6
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -217,11 +219,9 @@ public String javascriptArray(List<String> 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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
<%=getScriptTag("/Flow/editCompensationCalculation.js")%>
<script type="text/javascript" nonce="<%=getScriptNonce()%>">
function o() { var o = {}; for (var i = 0; i < arguments.length; i += 2) o[arguments[i]] = arguments[i + 1]; return o; }
var parameters = <%=text(javascriptArray(form.parameters))%>
var parameters = <%= javascriptArray(form.parameters) %>
var AutoComp = {};
<%
boolean hasAutoCompScripts = form.workspace.getAutoCompensationScripts().size() > 0;
Expand All @@ -45,7 +45,7 @@ var AutoComp = {};
AutoCompensationScript.MatchingCriteria criteria = autoComp.getCriteria();
if (criteria != null)
{
%>'criteria' : <%=text(javascriptArray(criteria.getPrimaryKeyword(), criteria.getSecondaryKeyword(), criteria.getSecondaryValue()))%>,
%>'criteria' : <%=javascriptArray(criteria.getPrimaryKeyword(), criteria.getSecondaryKeyword(), criteria.getSecondaryValue())%>,
<%
}
Expand All @@ -54,8 +54,8 @@ var AutoComp = {};
String and = "\n";
for (AutoCompensationScript.ParameterDefinition param : autoComp.getParameters().values())
{
%><%=text(and)%><%=q(param.getParameterName())%> : <%=text(javascriptArray(
param.getSearchKeyword(), param.getSearchValue(), param.getPositiveGate(), param.getNegativeGate()))%><%
%><%=text(and)%><%=q(param.getParameterName())%> : <%=javascriptArray(
param.getSearchKeyword(), param.getSearchValue(), param.getPositiveGate(), param.getNegativeGate())%><%
and = ",\n";
}
%>}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Assert;
import org.junit.Test;
import org.labkey.api.util.JsonUtil;

import java.io.IOException;
import java.util.ArrayList;
Expand Down Expand Up @@ -53,7 +54,7 @@ protected static String getStatusUrl(List<String> lines)
}
if(stringBuilder.length() > 0)
{
ObjectMapper mapper = new ObjectMapper();
ObjectMapper mapper = JsonUtil.createDefaultMapper();
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
try
{
Expand Down
5 changes: 3 additions & 2 deletions flow/src/org/labkey/flow/controllers/well/showWell.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
<%@ page import="java.util.Map" %>
<%@ page import="java.util.regex.Matcher" %>
<%@ page import="java.util.regex.Pattern" %>
<%@ page import="org.labkey.api.util.JavaScriptFragment" %>
<%@ page extends="org.labkey.flow.controllers.well.WellController.Page" %>
<%@ taglib prefix="labkey" uri="http://www.labkey.org/taglib" %>
<%!
Expand Down Expand Up @@ -346,10 +347,10 @@ Ext.onReady(function()
}
});
var statistics = <%=unsafe(jsonStats.toString())%>;
var statistics = <%=JavaScriptFragment.unsafe(jsonStats.toString())%>;
var treeData;
var stats;
var keywords = <%=unsafe(jsonKeywords.toString())%>;
var keywords = <%=JavaScriptFragment.unsafe(jsonKeywords.toString())%>;
</script>
<table class="lk-fields-table"><%
Expand Down
3 changes: 2 additions & 1 deletion flow/src/org/labkey/flow/reports/statPicker.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)%>;
Expand Down
3 changes: 2 additions & 1 deletion flow/src/org/labkey/flow/view/ExportAnalysisManifest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion flow/src/org/labkey/flow/view/setComment.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
7 changes: 4 additions & 3 deletions nab/src/org/labkey/nab/view/nabQC.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -43,7 +45,6 @@
JspView<NabAssayController.NabQCForm> me = (JspView<NabAssayController.NabQCForm>) HttpView.currentView();
NabAssayController.NabQCForm bean = me.getModelBean();
DilutionAssayRun assay = bean.getAssay();
ObjectMapper jsonMapper = new ObjectMapper();
HtmlString errorMsg = HtmlString.EMPTY_STRING;
// run properties array
Expand Down Expand Up @@ -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)%>
});
});
</script><%
Expand Down

0 comments on commit e01e2f6

Please sign in to comment.