diff --git a/api/src/org/labkey/api/reports/Report.java b/api/src/org/labkey/api/reports/Report.java index 731a651d601..94d70d752b0 100644 --- a/api/src/org/labkey/api/reports/Report.java +++ b/api/src/org/labkey/api/reports/Report.java @@ -221,4 +221,12 @@ enum renderParam implements SafeToRenderEnum * e.g. This report can run code that runs outside labkey's security context */ boolean isSandboxed(); + + /* Reports that require a redirect (e.g., Sample Finder saved searches) should return false + * to prevent them from causing invalid redirects during web part rendering. + */ + default boolean isShowInReportsWebPart() + { + return true; + } } diff --git a/query/src/org/labkey/query/reports/view/ReportsWebPart.java b/query/src/org/labkey/query/reports/view/ReportsWebPart.java index 8f3079f985f..1f30990bfaf 100644 --- a/query/src/org/labkey/query/reports/view/ReportsWebPart.java +++ b/query/src/org/labkey/query/reports/view/ReportsWebPart.java @@ -86,7 +86,7 @@ protected void renderView(Object model, HtmlWriter out) throws Exception getViewContext().put(Report.renderParam.reportSessionId.name(), properties.get(Report.renderParam.reportSessionId.name())); } - if (_report != null) + if (_report != null && _report.isShowInReportsWebPart()) { HttpView view; diff --git a/query/src/org/labkey/query/reports/view/reportsWebPartConfig.jsp b/query/src/org/labkey/query/reports/view/reportsWebPartConfig.jsp index 5e46ee09588..00e9ddcbe99 100644 --- a/query/src/org/labkey/query/reports/view/reportsWebPartConfig.jsp +++ b/query/src/org/labkey/query/reports/view/reportsWebPartConfig.jsp @@ -52,7 +52,7 @@ for (Report report : ReportUtil.getReportsIncludingInherited(c, u, null)) { - if (!filter.accept(report, c, u) || (report.getDescriptor().isHidden() && !showHidden)) + if (!filter.accept(report, c, u) || (report.getDescriptor().isHidden() && !showHidden) || !report.isShowInReportsWebPart()) continue; String reportName = report.getDescriptor().getReportName();