From 8a1fb51c4e9a4b1f5742a3228d730913c98458f3 Mon Sep 17 00:00:00 2001 From: cnathe Date: Thu, 24 Sep 2026 16:29:08 -0500 Subject: [PATCH 1/2] GitHub Issue 1446: Scope delete-data confirmation to current folder --- .../controllers/exp/ExperimentController.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java index d3865df1c1e..c9b4a6314f5 100644 --- a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java +++ b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java @@ -3937,8 +3937,14 @@ public ModelAndView getView(DeleteForm deleteForm, boolean reshow, BindException List datas = getDatas(deleteForm, false); List runs = getRuns(datas); + ConfirmDeleteView view = new ConfirmDeleteView("Data", ShowDataAction.class, datas, deleteForm, runs); - return new ConfirmDeleteView("Data", ShowDataAction.class, datas, deleteForm, runs); + // GitHub Issue #1446: only proceed to ConfirmDeleteView if we have resolved all of the ids within the container context + int unresolved = deleteForm.getIds(false).size() - datas.size(); + if (unresolved == 0) + return view; + + return new VBox(new HtmlView(DIV(unresolved + " of the selected items could not be found in this folder.")), view); } private List getRuns(List datas) @@ -3953,7 +3959,8 @@ private List getDatas(DeleteForm deleteForm, boolean clear) for (long dataId : deleteForm.getIds(clear)) { ExpData data = ExperimentService.get().getExpData(dataId); - if (data != null) + // GitHub Issue #1446: deleteObjects() only deletes within getContainer(), so don't resolve data from other folders + if (data != null && data.getContainer().equals(getContainer())) { datas.add(data); } From c98cb616d8a0cbfe567a251111410ff7f12bf698 Mon Sep 17 00:00:00 2001 From: cnathe Date: Fri, 25 Sep 2026 08:26:50 -0500 Subject: [PATCH 2/2] update comment --- .../labkey/experiment/controllers/exp/ExperimentController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java index c9b4a6314f5..52e4f0d9bbd 100644 --- a/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java +++ b/experiment/src/org/labkey/experiment/controllers/exp/ExperimentController.java @@ -3939,7 +3939,7 @@ public ModelAndView getView(DeleteForm deleteForm, boolean reshow, BindException List runs = getRuns(datas); ConfirmDeleteView view = new ConfirmDeleteView("Data", ShowDataAction.class, datas, deleteForm, runs); - // GitHub Issue #1446: only proceed to ConfirmDeleteView if we have resolved all of the ids within the container context + // GitHub Issue #1446: show ConfirmDeleteView with a message indicating if not all of the ids resolve within the container context int unresolved = deleteForm.getIds(false).size() - datas.size(); if (unresolved == 0) return view;