Skip to content

Commit 2a91cc6

Browse files
committed
Merge remote-tracking branch 'origin/develop' into fb_sourceDIB
2 parents 3446ba4 + ec3c84f commit 2a91cc6

5 files changed

Lines changed: 80 additions & 5 deletions

File tree

api/src/org/labkey/api/query/AbstractQueryUpdateService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
import org.labkey.api.util.URIUtil;
9898
import org.labkey.api.view.NotFoundException;
9999
import org.labkey.api.view.UnauthorizedException;
100+
import org.labkey.api.workflow.WorkflowService;
100101
import org.labkey.api.writer.VirtualFile;
101102
import org.labkey.vfs.FileLike;
102103
import org.springframework.web.multipart.MultipartFile;
@@ -901,6 +902,9 @@ public List<Map<String, Object>> updateRows(User user, Container container, List
901902
throw errors;
902903

903904
addAuditEvent(user, container, QueryService.AuditAction.UPDATE, configParameters, result, oldRows, providedValues);
905+
WorkflowService service = WorkflowService.get();
906+
if (service != null && configParameters != null && configParameters.containsKey(WorkflowService.WorkflowConfigs.ActionId))
907+
service.onActionComplete(container, user, (Long) configParameters.get(WorkflowService.WorkflowConfigs.ActionId));
904908

905909
return result;
906910
}

api/src/org/labkey/api/query/QueryService.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,14 @@ UserSchema createLinkedSchema(User user, Container container, String name, Strin
174174
*/
175175
List<CustomView> getSharedCustomViews(@NotNull User user, Container container, @Nullable String schemaName, @Nullable String queryName, boolean includeInherited);
176176

177+
@Deprecated // Use the three parameter version of the function to get views in product containers
178+
List<CustomView> getDatabaseCustomViews(@NotNull User user, Container container, @Nullable User owner, @Nullable String schemaName, @Nullable String queryName, boolean includeInherited, boolean sharedOnly);
179+
177180
/**
178181
* Returns custom views stored in the database (not module custom views) that meet the criteria. This is not appropriate
179182
* for UI operations (see getCustomViews() for that), but it's important for query change listeners. See #21641 and #21862.
180183
*/
181-
List<CustomView> getDatabaseCustomViews(@NotNull User user, Container container, @Nullable User owner, @Nullable String schemaName, @Nullable String queryName, boolean includeInherited, boolean sharedOnly);
184+
List<CustomView> getDatabaseCustomViews(@NotNull User user, @NotNull Container container, @Nullable String schemaName, @Nullable String queryName);
182185

183186
int importCustomViews(User user, Container container, VirtualFile viewDir) throws IOException;
184187

api/src/org/labkey/api/workflow/WorkflowService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ enum ActionType
2525
AliquotSamples("aliquot sample type parameters", "Aliquot samples"),
2626
PoolSamples("pooling sample type parameters", "Pooled samples"),
2727
AddToStorage("input parameters", "Added samples to storage"),
28-
MoveInStorage("input parameters", "Moved samples to storage"),
28+
MoveInStorage("input parameters", "Moved samples in storage"),
2929
CheckOut("input parameters", "Checked out samples"),
3030
CheckIn("input parameters", "Checked in samples"),
3131
RemoveFromStorage("sample status value", "Removed samples from storage");

query/src/org/labkey/query/CustomViewQueryChangeListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ private void _updateCustomViewColumnTypeChange(User user, Container container, S
9393

9494
String columnName = newDp.getName() == null ? oldDp.getName() : newDp.getName();
9595

96-
List<CustomView> databaseCustomViews = QueryService.get().getDatabaseCustomViews(user, container, null, schema.toString(), queryName, false, false);
96+
List<CustomView> databaseCustomViews = QueryService.get().getDatabaseCustomViews(user, container, schema.toString(), queryName);
9797

9898
for (CustomView customView : databaseCustomViews)
9999
{
@@ -230,7 +230,7 @@ private void _updateCustomViewQueryNameChange(User user, Container container, Sc
230230
queryNameChangeMap.put((String)qpc.getOldValue(), (String)qpc.getNewValue());
231231
}
232232

233-
List<CustomView> databaseCustomViews = QueryService.get().getDatabaseCustomViews(user, container, null, schemaKey.toString(), null, false, false);
233+
List<CustomView> databaseCustomViews = QueryService.get().getDatabaseCustomViews(user, container, schemaKey.toString(), null);
234234

235235
for (CustomView customView : databaseCustomViews)
236236
{
@@ -279,7 +279,7 @@ private void _updateCustomViewSchemaNameChange(User user, Container container, C
279279
{
280280
String newSchema = schemaNameChangeMap.get(oldSchema);
281281

282-
List<CustomView> databaseCustomViews = QueryService.get().getDatabaseCustomViews(user, container, null, oldSchema, null, false, false);
282+
List<CustomView> databaseCustomViews = QueryService.get().getDatabaseCustomViews(user, container, oldSchema, null);
283283

284284
for (CustomView customView : databaseCustomViews)
285285
{

query/src/org/labkey/query/QueryServiceImpl.java

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1295,6 +1295,7 @@ private List<CustomView> _getCustomViews(final @NotNull User user, final Contain
12951295
return new ArrayList<>(views);
12961296
}
12971297

1298+
@Deprecated
12981299
@Override
12991300
public List<CustomView> getDatabaseCustomViews(@NotNull User user, Container container, @Nullable User owner, @Nullable String schemaName, @Nullable String queryName, boolean includeInherited, boolean sharedOnly)
13001301
{
@@ -1335,6 +1336,73 @@ public List<CustomView> getDatabaseCustomViews(@NotNull User user, Container con
13351336
return allViews.stream().filter(view -> !(view instanceof ModuleCustomView)).collect(Collectors.toList());
13361337
}
13371338

1339+
@Override
1340+
public List<CustomView> getDatabaseCustomViews(@NotNull User user, @NotNull Container container, @Nullable String schemaName, @Nullable String queryName)
1341+
{
1342+
// GitHub Issue 1058: Sample Finder saved views in subfolder break after MVTC to TC conversion
1343+
Collection<GUID> containerIds = container.getProductFoldersDataContainerFilter(user).getIds();
1344+
1345+
SimpleFilter filter = new SimpleFilter();
1346+
if (containerIds != null)
1347+
filter.addInClause(FieldKey.fromParts("Container"), containerIds);
1348+
else
1349+
filter = SimpleFilter.createContainerFilter(container, "Container");
1350+
1351+
if (schemaName != null)
1352+
filter.addCondition(FieldKey.fromParts("Schema"), schemaName);
1353+
if (queryName != null)
1354+
filter.addCondition(FieldKey.fromParts("QueryName"), queryName);
1355+
1356+
List<CstmView> cstmViews = new TableSelector(QueryManager.get().getTableInfoCustomView(), filter, null).getArrayList(CstmView.class);
1357+
1358+
List<CustomView> result = new ArrayList<>();
1359+
1360+
Map<Container, List<CstmView>> containerViews = new HashMap<>();
1361+
for (CstmView cstmView : cstmViews)
1362+
{
1363+
Container viewContainer = cstmView.lookupContainer();
1364+
if (viewContainer != null)
1365+
containerViews.computeIfAbsent(viewContainer, k -> new ArrayList<>()).add(cstmView);
1366+
}
1367+
1368+
for (Map.Entry<Container, List<CstmView>> containerCstmViews: containerViews.entrySet())
1369+
{
1370+
Map<String, UserSchema> schemas = new HashMap<>();
1371+
Map<Pair<String, String>, QueryDefinition> queryDefs = new HashMap<>();
1372+
Container viewContainer = containerCstmViews.getKey();
1373+
List<CstmView> views = containerCstmViews.getValue();
1374+
DefaultSchema defaultSchema = DefaultSchema.get(user, viewContainer);
1375+
1376+
for (CstmView cstmView : views)
1377+
{
1378+
Pair<String, String> key = new Pair<>(cstmView.getSchema(), cstmView.getQueryName());
1379+
QueryDefinition queryDef = queryDefs.get(key);
1380+
if (queryDef == null)
1381+
{
1382+
UserSchema schema = schemas.get(cstmView.getSchema());
1383+
if (schema == null)
1384+
{
1385+
schema = defaultSchema.getUserSchema(cstmView.getSchema());
1386+
schemas.put(cstmView.getSchema(), schema);
1387+
}
1388+
if (schema != null)
1389+
{
1390+
queryDef = schema.getQueryDefForTable(cstmView.getQueryName());
1391+
queryDefs.put(key, queryDef);
1392+
}
1393+
}
1394+
1395+
if (queryDef != null)
1396+
{
1397+
result.add(new CustomViewImpl(queryDef, cstmView));
1398+
}
1399+
}
1400+
}
1401+
1402+
return result;
1403+
}
1404+
1405+
13381406
@Override
13391407
public List<CustomView> getFileBasedCustomViews(Container container, QueryDefinition qd, Path path, String query, Module... extraModules)
13401408
{

0 commit comments

Comments
 (0)