diff --git a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java index a95fe9f5a..d5b09d44c 100644 --- a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java +++ b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java @@ -444,8 +444,10 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) ).appendTo(out); StringBuilder onchange = new StringBuilder("b = this.checked;"); - for (DisplayColumn col : getColumns()) + // Index starts at 1 -- always leave the first column visible (Issue 53620) + for (int i = 1; i < getColumns().size(); i++) { + DisplayColumn col = getColumns().get(i); onchange.append("document.getElementsByName('").append(col.getFormFieldName(ctx)).append("')[0].style.display = b ? 'none' : 'block';\n"); } onchange.append("if (b) { ").append(groupName).append("Updated(); }"); diff --git a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java index d6665d695..e10842759 100644 --- a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java +++ b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java @@ -51,7 +51,10 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) InputBuilder.checkbox().name(id).id(id).appendTo(out); StringBuilder onChange = new StringBuilder("b = this.checked;\n"); - getColumns().forEach(col -> { + // Index starts at 1 -- always leave the first column visible (Issue 53620) + for (int i = 1; i < getColumns().size(); i++) + { + DisplayColumn col = getColumns().get(i); if (col.getColumnInfo() != null) { onChange.append("s = document.getElementsByName('") @@ -61,7 +64,7 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) .append(col.getFormFieldName(ctx)) .append("')[0].style.display = b || s == 0 ? 'none' : 'block';\n"); } - }); + } onChange.append(" if (b) { ") .append(inputName) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java index c2489e0f2..f4c574adf 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -127,6 +127,7 @@ public void uploadRun() setFormElement(Locator.name("StndCurveFitInput"), "FI"); setFormElement(Locator.name("UnkCurveFitInput"), "FI-Bkgd-Neg"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); + scrollIntoView(Locator.lkButton("Next"), true); clickButton("Next", defaultWaitForPage * 2); // make sure the Standard checkboxes are checked @@ -140,12 +141,11 @@ public void uploadRun() setFormElement(Locator.xpath("//input[@type='text' and contains(@name, '_LotNumber')][1]"), TEST_ANALYTE_LOT_NUMBER); // set negative control and negative bead values checkCheckbox(Locator.name("_analyte_" + ANALYTE3 + "_NegativeControl")); + checkCheckbox(Locator.name("_analyte_" + ANALYTE1 + "_NegativeBeadCheckBox")); // Issue 53620: "Same" checkbox for subtract negative bead selectOptionByText(Locator.name("_analyte_" + ANALYTE1 + "_NegativeBead"), ANALYTE3); - selectOptionByText(Locator.name("_analyte_" + ANALYTE2 + "_NegativeBead"), ANALYTE3); // switch to using MyNegative bead for subtraction checkCheckbox(Locator.name("_analyte_" + ANALYTE4 + "_NegativeControl")); selectOptionByText(Locator.name("_analyte_" + ANALYTE1 + "_NegativeBead"), ANALYTE4); - selectOptionByText(Locator.name("_analyte_" + ANALYTE2 + "_NegativeBead"), ANALYTE4); clickButton("Save and Finish"); } diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java index b61ac90e9..165c17756 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -662,6 +662,7 @@ public void selectPositivityFile(File file, boolean expectDuplicateFile) setFormElement(Locator.name("__primaryFile__"), file); if (expectDuplicateFile) waitForText("A file with name '" + file.getName() + "' already exists"); + scrollIntoView(Locator.lkButton("Next"), true); clickButton("Next"); }