Skip to content

Commit 7d620db

Browse files
authored
Add the list of webparts for the container. (#7318)
1 parent 3764440 commit 7d620db

2 files changed

Lines changed: 28 additions & 32 deletions

File tree

api/src/org/labkey/api/data/ContainerTable.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.labkey.api.data;
1818

19-
import org.apache.commons.lang3.StringUtils;
2019
import org.apache.commons.lang3.Strings;
2120
import org.apache.logging.log4j.LogManager;
2221
import org.jetbrains.annotations.NotNull;
@@ -39,6 +38,7 @@
3938
import org.labkey.api.util.Path;
4039
import org.labkey.api.util.SimpleNamedObject;
4140
import org.labkey.api.view.ActionURL;
41+
import org.labkey.api.view.Portal;
4242
import org.labkey.api.webdav.WebdavResource;
4343
import org.labkey.api.webdav.WebdavService;
4444

@@ -174,14 +174,23 @@ private void init(ActionURL url)
174174
var title = getMutableColumn("Title");
175175
title.setURL(detailsURL);
176176

177+
// everything except activeModules and webParts
178+
setDefaultVisibleColumns(getDefaultVisibleColumns());
179+
177180
var activeModules = new AliasedColumn("ActiveModules", getColumn("RowId"));
178181
activeModules.setDisplayColumnFactory(ActiveModulesDisplayColumn::new);
179182
activeModules.setReadOnly(true);
180-
activeModules.setHidden(true);
181183
addColumn(activeModules);
182184

185+
SQLFragment webpartNamesSQL = new SQLFragment("(SELECT ")
186+
.append(getSqlDialect().getGroupConcat(new SQLFragment("PWP.name"), true, true, ", "))
187+
.append(" FROM ").append(Portal.getTableInfoPortalWebParts(), "PWP")
188+
.append(" WHERE PWP.container = " + ExprColumn.STR_TABLE_ALIAS + ".entityId)");
189+
ExprColumn webpartColumn = new ExprColumn(this, "WebParts", webpartNamesSQL, JdbcType.VARCHAR);
190+
webpartColumn.setReadOnly(true);
191+
addColumn(webpartColumn);
192+
183193
setTitleColumn("DisplayName");
184-
185194
setImportURL(LINK_DISABLER);
186195
}
187196

@@ -205,6 +214,21 @@ private static class ActiveModulesDisplayColumn extends AbstractValueTransformin
205214
public ActiveModulesDisplayColumn(ColumnInfo rowIdCol)
206215
{
207216
super(rowIdCol, String.class);
217+
// VARCHAR rendering
218+
_textAlign = "left";
219+
_nowrap = false;
220+
}
221+
222+
@Override
223+
public boolean isSortable()
224+
{
225+
return false;
226+
}
227+
228+
@Override
229+
public boolean isFilterable()
230+
{
231+
return false;
208232
}
209233

210234
@Override

core/src/org/labkey/core/query/ModulesTableInfo.java

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,10 @@
1919
import org.jetbrains.annotations.NotNull;
2020
import org.labkey.api.data.BaseColumnInfo;
2121
import org.labkey.api.data.ColumnInfo;
22-
import org.labkey.api.data.Container;
23-
import org.labkey.api.data.ContainerManager;
2422
import org.labkey.api.data.CoreSchema;
2523
import org.labkey.api.data.DisplayColumn;
2624
import org.labkey.api.data.DisplayColumnDecorator;
2725
import org.labkey.api.data.DisplayColumnFactory;
28-
import org.labkey.api.data.ExpandableTextDisplayColumnFactory;
2926
import org.labkey.api.data.JdbcType;
3027
import org.labkey.api.data.RenderContext;
3128
import org.labkey.api.data.SQLFragment;
@@ -39,11 +36,7 @@
3936
import org.labkey.api.util.StringExpressionFactory;
4037
import org.labkey.api.writer.HtmlWriter;
4138

42-
import java.util.ArrayList;
43-
import java.util.Collections;
44-
import java.util.HashMap;
4539
import java.util.List;
46-
import java.util.Map;
4740

4841
/**
4942
* User: kevink
@@ -101,7 +94,6 @@ public void addColumns()
10194
var licenseCol = addTextColumn("License");
10295
licenseCol.setURL(StringExpressionFactory.createURL("${LicenseURL}"));
10396
licenseCol.setURLTarget("_blank");
104-
addTextColumn("ActiveFolders").setDisplayColumnFactory(new ExpandableTextDisplayColumnFactory());
10597
addTextColumn("LicenseURL").setHidden(true);
10698
addTextColumn("VcsRevision");
10799
addTextColumn("VcsURL");
@@ -117,8 +109,7 @@ public void addColumns()
117109
FieldKey.fromParts("SchemaVersion"),
118110
FieldKey.fromParts("Label"),
119111
FieldKey.fromParts("Organization"),
120-
FieldKey.fromParts("License"),
121-
FieldKey.fromParts("ActiveFolders")
112+
FieldKey.fromParts("License")
122113
));
123114
}
124115

@@ -192,7 +183,6 @@ public SQLFragment getFromSQL(String alias)
192183
cte.append("VALUES ");
193184
String sep = "";
194185

195-
Map<Module, List<String>> moduleContainers = getContainersForModule();
196186
for (Module module : ModuleLoader.getInstance().getModules())
197187
{
198188
cte.append(sep);
@@ -214,7 +204,6 @@ public SQLFragment getFromSQL(String alias)
214204
appendStringLiteral(h, cte,",",module.getSourcePath());
215205
appendStringLiteral(h, cte,",",StringUtils.join(module.getModuleDependenciesAsSet(), ", "));
216206
appendStringLiteral(h, cte,",",module.getSupportedDatabasesSet().toString());
217-
appendStringLiteral(h, cte,",", StringUtils.join(moduleContainers.getOrDefault(module, Collections.emptyList()), "\n"));
218207
cte.append(")");
219208
}
220209
cte.append(") AS T (");
@@ -231,7 +220,6 @@ public SQLFragment getFromSQL(String alias)
231220
cte.append(",VcsRevision, VcsURL");
232221
cte.append(",SourcePath");
233222
cte.append(",Dependencies, SupportedDatabases");
234-
cte.append(",ActiveFolders");
235223
cte.append(")\n");
236224

237225
String tableName = getSqlDialect().truncate(alias + "$m", 0);
@@ -252,22 +240,6 @@ public SQLFragment getFromSQL(String alias)
252240
return ret;
253241
}
254242

255-
private Map<Module, List<String>> getContainersForModule()
256-
{
257-
Map<Module, List<String>> moduleFolders = new HashMap<>();
258-
259-
for (Container container : ContainerManager.getAllChildren(ContainerManager.getRoot()))
260-
{
261-
if (container != null)
262-
container.getActiveModules().forEach(m -> moduleFolders.computeIfAbsent(m, k -> new ArrayList<>()).add(container.getPath()));
263-
}
264-
265-
for (List<String> folders : moduleFolders.values())
266-
Collections.sort(folders);
267-
268-
return moduleFolders;
269-
}
270-
271243
// Format SchemaVersion column using the standard ModuleContext formatting rules: force three-decimal places for >= 20.000,
272244
// otherwise suppress trailing zeroes. Also, right align the values in the grid.
273245
private static class SchemaVersionDisplayColumnFactory implements DisplayColumnFactory

0 commit comments

Comments
 (0)