diff --git a/mGAP/src/org/labkey/mgap/query/OMIMDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/OMIMDisplayColumnFactory.java index bbf2cc56..0befb04b 100644 --- a/mGAP/src/org/labkey/mgap/query/OMIMDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/OMIMDisplayColumnFactory.java @@ -7,10 +7,10 @@ import org.labkey.api.data.DisplayColumnFactory; import org.labkey.api.data.RenderContext; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.HtmlString; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -35,7 +35,7 @@ private FieldKey getBoundKey(String colName) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String rawValue = StringUtils.trimToNull(ctx.get(getBoundKey("omim"), String.class)); if (rawValue == null) @@ -46,7 +46,7 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit List tokens = Arrays.asList(rawValue.split(";")); Collections.sort(tokens); - String delim = ""; + HtmlString delim = HtmlString.EMPTY_STRING; for (String entry : tokens) { String id = entry; @@ -58,8 +58,9 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit text = parts[0]; } - oldWriter.write(delim + "" + text + ""); - delim = "
"; + out.write(delim); + out.write(PageFlowUtil.link(text).href("https://www.omim.org/entry/" + id).target("_blank").clearClasses()); + delim = HtmlString.BR; } } }; diff --git a/mGAP/src/org/labkey/mgap/query/OMIMPhenotypeDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/OMIMPhenotypeDisplayColumnFactory.java index c39e5004..ed07c8ec 100644 --- a/mGAP/src/org/labkey/mgap/query/OMIMPhenotypeDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/OMIMPhenotypeDisplayColumnFactory.java @@ -7,10 +7,10 @@ import org.labkey.api.data.DisplayColumnFactory; import org.labkey.api.data.RenderContext; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.HtmlString; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -50,7 +50,7 @@ public Object getExcelCompatibleValue(RenderContext ctx) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String rawValue = StringUtils.trimToNull(ctx.get(getBoundKey("omim_phenotype"), String.class)); if (rawValue == null) @@ -61,20 +61,21 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit List tokens = Arrays.asList(rawValue.split(";")); Collections.sort(tokens); - String delim = ""; + HtmlString delim = HtmlString.EMPTY_STRING; for (String entry : tokens) { String[] elements = entry.split("<>"); + out.write(delim); if (elements.length > 1) { - oldWriter.write(delim + "" + elements[0] + ""); + out.write(PageFlowUtil.link(elements[0]).target("_blank").href("https://www.omim.org/entry/" + elements[1]).clearClasses()); } else { - oldWriter.write(delim + "" + elements[0] + ""); + out.write(PageFlowUtil.link(elements[0]).clearClasses()); } - delim = "
"; + delim = HtmlString.BR; } } }; diff --git a/mGAP/src/org/labkey/mgap/query/OverlappingGenesDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/OverlappingGenesDisplayColumnFactory.java index 4dc7c152..f6664ea7 100644 --- a/mGAP/src/org/labkey/mgap/query/OverlappingGenesDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/OverlappingGenesDisplayColumnFactory.java @@ -7,10 +7,10 @@ import org.labkey.api.data.DisplayColumnFactory; import org.labkey.api.data.RenderContext; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.HtmlString; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -35,7 +35,7 @@ private FieldKey getBoundKey(String colName) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String rawValue = StringUtils.trimToNull(ctx.get(getBoundKey("overlappingGenes"), String.class)); if (rawValue == null) @@ -46,7 +46,7 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit List tokens = Arrays.asList(rawValue.split(";")); Collections.sort(tokens); - String delim = ""; + HtmlString delim = HtmlString.EMPTY_STRING; for (String geneName : tokens) { String url = null; @@ -65,8 +65,9 @@ else if (geneName.startsWith("ENSMMUE")) url = "http://ensembl.org/Macaca_mulatta/Gene/Summary?db=core;g=" + geneName; } - oldWriter.write(delim + "" + geneName + ""); - delim = "
"; + out.write(delim); + out.write(PageFlowUtil.link(geneName).href(url).target("_blank").clearClasses()); + delim = HtmlString.BR; } } }; diff --git a/mGAP/src/org/labkey/mgap/query/PhenotypeVariantLinkDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/PhenotypeVariantLinkDisplayColumnFactory.java index 8fdfa483..929f9933 100644 --- a/mGAP/src/org/labkey/mgap/query/PhenotypeVariantLinkDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/PhenotypeVariantLinkDisplayColumnFactory.java @@ -8,10 +8,9 @@ import org.labkey.api.data.RenderContext; import org.labkey.api.query.DetailsURL; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.List; import java.util.Set; @@ -45,7 +44,7 @@ private FieldKey getBoundKey(String colName) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String containerId = ctx.get(getBoundKey("container"), String.class); String omim = ctx.get(getBoundKey("omim_entry"), String.class); @@ -53,7 +52,7 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit if (releaseId != null && omim != null) { DetailsURL url = DetailsURL.fromString("/mgap/variantList.view?release=" + releaseId + "&query.omim_phenotype~contains=" + omim, ContainerManager.getForId(containerId)); - oldWriter.write("View Variants"); + out.write(PageFlowUtil.link("View Variants").href(url.getActionURL()).addClass("labkey-text-link")); } } }; diff --git a/mGAP/src/org/labkey/mgap/query/SourceDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/SourceDisplayColumnFactory.java index 2a11914a..1d7b5721 100644 --- a/mGAP/src/org/labkey/mgap/query/SourceDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/SourceDisplayColumnFactory.java @@ -9,10 +9,9 @@ import org.labkey.api.data.DisplayColumnFactory; import org.labkey.api.data.RenderContext; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Set; public class SourceDisplayColumnFactory implements DisplayColumnFactory @@ -32,7 +31,7 @@ public void addQueryFieldKeys(Set keys) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String val = ctx.get(getBoundKey("source"), String.class); if (val == null) @@ -61,7 +60,14 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit } } - oldWriter.write(url == null ? val : "" + val + ""); + if (url == null) + { + out.write(val); + } + else + { + out.write(PageFlowUtil.link(val).href(url).clearClasses()); + } } private FieldKey getBoundKey(String colName) diff --git a/mGAP/src/org/labkey/mgap/query/TracksPerReleaseGenomeBrowserDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/TracksPerReleaseGenomeBrowserDisplayColumnFactory.java index e5ba8cae..57aec2e5 100644 --- a/mGAP/src/org/labkey/mgap/query/TracksPerReleaseGenomeBrowserDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/TracksPerReleaseGenomeBrowserDisplayColumnFactory.java @@ -8,9 +8,6 @@ import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; - /** * Created by bimber on 5/17/2017. */ @@ -22,7 +19,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) return new VariantReleaseGenomeBrowserDisplayColumnFactory.BrowserDataColumn(colInfo, PageFlowUtil.set("releaseId/jbrowseId", "releaseId/container", "trackName")) { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String jbrowseId = ctx.get(getBoundKey("releaseId", "jbrowseId"), String.class); String containerId = ctx.get(getBoundKey("releaseId", "container"), String.class); @@ -31,7 +28,7 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit if (jbrowseId != null && trackName != null) { DetailsURL url = DetailsURL.fromString("/mgap/genomeBrowser.view?database=" + jbrowseId + "&activeTracks=" + trackName, ContainerManager.getForId(containerId)); - oldWriter.write("View In Genome Browser"); + out.write(PageFlowUtil.link("View In Genome Browser").addClass("labkey-text-link").href(url.getActionURL())); } } }; diff --git a/mGAP/src/org/labkey/mgap/query/VariantListJBrowseDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/VariantListJBrowseDisplayColumnFactory.java index d94da127..82f2f001 100644 --- a/mGAP/src/org/labkey/mgap/query/VariantListJBrowseDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/VariantListJBrowseDisplayColumnFactory.java @@ -11,10 +11,10 @@ import org.labkey.api.data.RenderContext; import org.labkey.api.query.DetailsURL; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.HtmlString; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.List; import java.util.Set; @@ -53,7 +53,7 @@ private FieldKey getBoundKey(String colName) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String jbrowseId = StringUtils.trimToNull(ctx.get(getBoundKey("releaseId/jbrowseId"), String.class)); String primaryTrack = ctx.get(getBoundKey("releaseId/primaryTrack"), String.class); @@ -61,26 +61,26 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit String contig = StringUtils.trimToNull(ctx.get(getBoundKey("contig"), String.class)); String ref = ctx.get(getBoundKey("reference"), String.class); Integer position = ctx.get(getBoundKey("position"), Integer.class); - String delim = ""; + HtmlString delim = HtmlString.EMPTY_STRING; int start = position - 200; int stop = position + 200; int length = ref.length(); if (jbrowseId != null) { DetailsURL url = DetailsURL.fromString("/jbrowse/browser.view?database=" + jbrowseId + "&location=" + contig + ":" + start + ".." + stop + "&highlight=" + contig + ":" + position + ".." + (position + length - 1), ContainerManager.getForId(containerId)); - oldWriter.write("View In Genome Browser"); - delim = "
"; + out.write(PageFlowUtil.link("View In Genome Browser").href(url.getActionURL()).addClass("labkey-text-link")); + delim = HtmlString.BR; } if (primaryTrack != null) { - oldWriter.write(delim); + out.write(delim); DetailsURL url = DetailsURL.fromString("/jbrowse/genotypeTable.view?trackId=" + primaryTrack + "&chr=" + contig + "&start=" + position + "&stop=" + position, ContainerManager.getForId(containerId)); - oldWriter.write("View Genotypes At Position"); - delim = "
"; + out.write(PageFlowUtil.link("View Genotypes At Position").href(url.getActionURL()).addClass("labkey-text-link")); + delim = HtmlString.BR; } - if (ctx.get(FieldKey.fromString("identifier")) != null) + if (ctx.get(FieldKey.fromString("identifier"), String.class) != null) { String identifier = StringUtils.trimToNull(ctx.get(getBoundKey("identifier"), String.class)); if (identifier != null && identifier.contains(":")) @@ -97,9 +97,9 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit if (!StringUtils.isEmpty(parts[1])) { String url = "https://www.ncbi.nlm.nih.gov/clinvar/variation/" + parts[1] + "/"; - oldWriter.write(delim); - oldWriter.write("View in ClinVar"); - delim = "
"; + out.write(delim); + out.write(PageFlowUtil.link("View in ClinVar").href(url)); + delim = HtmlString.BR; } } } @@ -110,8 +110,8 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit String contigE = contig.replaceAll("chr", ""); contigE = contigE.replaceAll("^0", ""); String url = "https://ensembl.org/Macaca_mulatta/Location/View?db=core;r=" + contigE + ":" + start +"-" + stop; - oldWriter.write(delim); - oldWriter.write("View Region in Ensembl"); + out.write(delim); + out.write(PageFlowUtil.link("View Region in Ensembl").href(url)); } }; } diff --git a/mGAP/src/org/labkey/mgap/query/VariantReleaseDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/VariantReleaseDisplayColumnFactory.java index 56fda337..8b05a0ca 100644 --- a/mGAP/src/org/labkey/mgap/query/VariantReleaseDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/VariantReleaseDisplayColumnFactory.java @@ -9,13 +9,12 @@ import org.labkey.api.data.RenderContext; import org.labkey.api.query.DetailsURL; import org.labkey.api.query.FieldKey; +import org.labkey.api.util.HtmlString; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.template.ClientDependency; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Set; /** @@ -49,12 +48,15 @@ private FieldKey getBoundKey(String colName) private boolean _clickHandlerRegistered = false; @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { Integer rowId = ctx.get(getBoundKey("rowid"), Integer.class); if (rowId != null) { - oldWriter.write("Download"); + out.write(PageFlowUtil.link("Download"). + addClass("vrdc-row"). + attributes(PageFlowUtil.map("data-rowid", rowId.toString())) + ); if (!_clickHandlerRegistered) { @@ -70,20 +72,20 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit { if (rowId != null) { - oldWriter.write("
"); + out.write(HtmlString.BR); } DetailsURL url = DetailsURL.fromString("/jbrowse/browser.view?database=" + jbrowseId, ContainerManager.getForId(containerId)); - oldWriter.write("View In Genome Browser"); + out.write(PageFlowUtil.link("View In Genome Browser", url.getActionURL())); } Boolean showVariantList = ctx.get(getBoundKey("hasSignificantVariants"), Boolean.class); if (showVariantList) { - oldWriter.write("
"); + out.write(HtmlString.BR); DetailsURL url = DetailsURL.fromString("/mgap/variantList.view?release=" + rowId, ContainerManager.getForId(containerId)); - oldWriter.write("Significant Variant List"); + out.write(PageFlowUtil.link("Significant Variant List", url.getActionURL())); } } diff --git a/mGAP/src/org/labkey/mgap/query/VariantReleaseGenomeBrowserDisplayColumnFactory.java b/mGAP/src/org/labkey/mgap/query/VariantReleaseGenomeBrowserDisplayColumnFactory.java index f2d23a7b..e3803216 100644 --- a/mGAP/src/org/labkey/mgap/query/VariantReleaseGenomeBrowserDisplayColumnFactory.java +++ b/mGAP/src/org/labkey/mgap/query/VariantReleaseGenomeBrowserDisplayColumnFactory.java @@ -11,8 +11,6 @@ import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; -import java.io.IOException; -import java.io.Writer; import java.util.Set; /** @@ -68,14 +66,14 @@ protected FieldKey getBoundKey(String... colNames) } @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { String jbrowseId = ctx.get(getBoundKey("jbrowseId"), String.class); String containerId = ctx.get(getBoundKey("container"), String.class); if (jbrowseId != null) { DetailsURL url = DetailsURL.fromString("/jbrowse/browser.view?database=" + jbrowseId, ContainerManager.getForId(containerId)); - oldWriter.write("View In Genome Browser"); + out.write(PageFlowUtil.link("View In Genome Browser", url.getActionURL())); } } diff --git a/mcc/src/org/labkey/mcc/query/AnimalRequestActionsDisplayColumnFactory.java b/mcc/src/org/labkey/mcc/query/AnimalRequestActionsDisplayColumnFactory.java index 331acaf8..696920b4 100644 --- a/mcc/src/org/labkey/mcc/query/AnimalRequestActionsDisplayColumnFactory.java +++ b/mcc/src/org/labkey/mcc/query/AnimalRequestActionsDisplayColumnFactory.java @@ -5,13 +5,12 @@ import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.DisplayColumn; import org.labkey.api.data.DisplayColumnFactory; +import org.labkey.api.util.PageFlowUtil; +import org.labkey.api.writer.HtmlWriter; import org.labkey.api.data.RenderContext; import org.labkey.api.query.FieldKey; -import org.labkey.api.writer.HtmlWriter; import org.labkey.mcc.MccManager; -import java.io.IOException; -import java.io.Writer; import java.util.Set; public class AnimalRequestActionsDisplayColumnFactory implements DisplayColumnFactory @@ -24,10 +23,10 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) return new AbstractMccDisplayColumn(colInfo) { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { int rowId = ctx.get(getBoundKey("rowid"), Integer.class); - oldWriter.write("Contact MCC"); + out.write(PageFlowUtil.link("Contact MCC").href("mailto:" + MccManager.get().getMccAdminEmail() + "?subject=MCC Request #" + rowId)); } @Override diff --git a/mcc/src/org/labkey/mcc/query/RequestReviewActionsDisplayColumnFactory.java b/mcc/src/org/labkey/mcc/query/RequestReviewActionsDisplayColumnFactory.java index 47efa1b7..e1287613 100644 --- a/mcc/src/org/labkey/mcc/query/RequestReviewActionsDisplayColumnFactory.java +++ b/mcc/src/org/labkey/mcc/query/RequestReviewActionsDisplayColumnFactory.java @@ -11,11 +11,10 @@ import org.labkey.api.query.FieldKey; import org.labkey.api.security.User; import org.labkey.api.security.UserManager; +import org.labkey.api.util.PageFlowUtil; import org.labkey.api.writer.HtmlWriter; import org.labkey.mcc.MccManager; -import java.io.IOException; -import java.io.Writer; import java.util.Set; public class RequestReviewActionsDisplayColumnFactory implements DisplayColumnFactory @@ -28,7 +27,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) return new AbstractMccDisplayColumn(colInfo) { @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { int userId = ctx.get(getBoundKey("reviewerId"), Integer.class); User u = UserManager.getUser(userId); @@ -45,7 +44,7 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit String requestId = ctx.get(getBoundKey("requestId"), String.class); Container requestContainer = MccManager.get().getMCCRequestContainer(ctx.getContainer()); DetailsURL url = DetailsURL.fromString("/mcc/requestReview.view?requestId=" + requestId + "&mode=rabReview", requestContainer); - oldWriter.write("Enter Review"); + out.write(PageFlowUtil.link("Enter Review").href(url.getActionURL().addReturnUrl(ctx.getViewContext().getActionURL())).addClass("labkey-text-link")); } @Override diff --git a/mcc/src/org/labkey/mcc/query/RequestScoreActionsDisplayColumnFactory.java b/mcc/src/org/labkey/mcc/query/RequestScoreActionsDisplayColumnFactory.java index 09eb6961..b95d4312 100644 --- a/mcc/src/org/labkey/mcc/query/RequestScoreActionsDisplayColumnFactory.java +++ b/mcc/src/org/labkey/mcc/query/RequestScoreActionsDisplayColumnFactory.java @@ -12,6 +12,7 @@ import org.labkey.api.query.FieldKey; import org.labkey.api.security.User; import org.labkey.api.security.UserManager; +import org.labkey.api.util.HtmlString; import org.labkey.api.util.PageFlowUtil; import org.labkey.api.view.HttpView; import org.labkey.api.view.template.ClientDependency; @@ -20,8 +21,6 @@ import org.labkey.mcc.security.MccFinalReviewPermission; import org.labkey.mcc.security.MccRequestAdminPermission; -import java.io.IOException; -import java.io.Writer; import java.util.LinkedHashSet; import java.util.Set; @@ -37,7 +36,7 @@ public DisplayColumn createRenderer(ColumnInfo colInfo) private boolean _hasRegisteredApprovedHandler = false; @Override - public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWriter out) throws IOException + public void renderGridCellContents(RenderContext ctx, HtmlWriter out) { int requestRowId = ctx.get(getBoundKey("requestId", "rowid"), Integer.class); if (MccManager.get().isRequestAdmin(ctx.getViewContext().getUser(), ctx.getContainer())) @@ -50,7 +49,7 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit return; } - oldWriter.write("Contact Investigator"); + out.write(PageFlowUtil.link("Contact Investigator").addClass("labkey-text-link").href("mailto:" + u.getEmail() + "?subject=MCC Request #" + requestRowId)); } String status = ctx.get(getBoundKey("requestId", "status"), String.class); @@ -77,7 +76,8 @@ public void renderGridCellContents(RenderContext ctx, Writer oldWriter, HtmlWrit if (requestContainer.hasPermission(ctx.getViewContext().getUser(), MccRequestAdminPermission.class)) { DetailsURL url = DetailsURL.fromString("/mcc/requestReview.view?requestId=" + requestId + "&mode=primaryReview", requestContainer); - oldWriter.write("
Enter MCC Internal Review"); + out.write(HtmlString.BR); + out.write(PageFlowUtil.link("Enter MCC Internal Review").addClass("labkey-text-link").href(url.getActionURL().addReturnUrl(ctx.getViewContext().getActionURL()))); } } else if (st == MccManager.RequestStatus.RabReview && ctx.get(FieldKey.fromString("pendingRabReviews"), Integer.class) == 0) @@ -85,7 +85,8 @@ else if (st == MccManager.RequestStatus.RabReview && ctx.get(FieldKey.fromString if (requestContainer.hasPermission(ctx.getViewContext().getUser(), MccFinalReviewPermission.class)) { DetailsURL url = DetailsURL.fromString("/mcc/requestReview.view?requestId=" + requestId + "&mode=resourceAvailability", requestContainer); - oldWriter.write("
Enter Resource Availability Assessment"); + out.write(HtmlString.BR); + out.write(PageFlowUtil.link("Enter Resource Availability Assessment").addClass("labkey-text-link").href(url.getActionURL().addReturnUrl(ctx.getViewContext().getActionURL()))); } } else if (st == MccManager.RequestStatus.PendingDecision) @@ -93,12 +94,17 @@ else if (st == MccManager.RequestStatus.PendingDecision) if (requestContainer.hasPermission(ctx.getViewContext().getUser(), MccFinalReviewPermission.class)) { DetailsURL url = DetailsURL.fromString("/mcc/requestReview.view?requestId=" + requestId + "&mode=finalReview", requestContainer); - oldWriter.write("
Enter Final Review"); + out.write(HtmlString.BR); + out.write(PageFlowUtil.link("Enter Final Review").addClass("labkey-text-link").href(url.getActionURL().addReturnUrl(ctx.getViewContext().getActionURL()))); } } else if (st == MccManager.RequestStatus.Approved) { - oldWriter.write("
Mark Fulfilled"); + out.write(HtmlString.BR); + out.write(PageFlowUtil.link("Mark Fulfilled"). + addClass("labkey-text-link"). + addClass("rsadc-approved"). + attributes(PageFlowUtil.map("data-requestrowid", String.valueOf(requestRowId)))); if (!_hasRegisteredApprovedHandler) {