|
19 | 19 | import org.jetbrains.annotations.Nullable; |
20 | 20 | import org.labkey.api.data.Container; |
21 | 21 | import org.labkey.api.data.SimpleFilter; |
| 22 | +import org.labkey.api.data.TableInfo; |
| 23 | +import org.labkey.api.data.TableSelector; |
22 | 24 | import org.labkey.api.module.Module; |
| 25 | +import org.labkey.api.query.QueryService; |
23 | 26 | import org.labkey.api.query.QueryUrls; |
| 27 | +import org.labkey.api.query.UserSchema; |
| 28 | +import org.labkey.api.security.User; |
24 | 29 | import org.labkey.api.settings.LookAndFeelProperties; |
25 | 30 | import org.labkey.api.util.PageFlowUtil; |
26 | 31 | import org.labkey.api.util.logging.LogHelper; |
@@ -85,4 +90,40 @@ public Module getOwnerModule() |
85 | 90 | { |
86 | 91 | return _owner; |
87 | 92 | } |
| 93 | + |
| 94 | + protected void genericQueryCheck(Container c, User u, StringBuilder msg, String schemaName, String queryName, String message) |
| 95 | + { |
| 96 | + genericQueryCheck(c, u, msg, schemaName, queryName, message, null); |
| 97 | + } |
| 98 | + |
| 99 | + protected void genericQueryCheck(Container c, User u, StringBuilder msg, String schemaName, String queryName, String message, @Nullable SimpleFilter filter) |
| 100 | + { |
| 101 | + TableInfo ti = getTableInfo(u, c, schemaName, queryName); |
| 102 | + |
| 103 | + TableSelector ts = new TableSelector(ti, filter, null); |
| 104 | + long count = ts.getRowCount(); |
| 105 | + if (count > 0) |
| 106 | + { |
| 107 | + msg.append("<b>WARNING: There are ").append(count).append(" ").append(message).append("</b><br>\n"); |
| 108 | + msg.append("<p><a href='").append(getExecuteQueryUrl(c, schemaName, queryName, null, filter)).append("'>Click here to view them</a><br>\n\n"); |
| 109 | + msg.append("<hr>\n\n"); |
| 110 | + } |
| 111 | + } |
| 112 | + |
| 113 | + protected TableInfo getTableInfo(User u, Container c, String schemaName, String queryName) |
| 114 | + { |
| 115 | + UserSchema us = QueryService.get().getUserSchema(u, c, schemaName); |
| 116 | + if (us == null) |
| 117 | + { |
| 118 | + throw new IllegalStateException("Missing user schema: " + schemaName); |
| 119 | + } |
| 120 | + |
| 121 | + TableInfo ti = us.getTable(queryName); |
| 122 | + if (ti == null) |
| 123 | + { |
| 124 | + throw new IllegalStateException("Missing table: " + schemaName + "." + queryName); |
| 125 | + } |
| 126 | + |
| 127 | + return ti; |
| 128 | + } |
88 | 129 | } |
0 commit comments