diff --git a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java index c161d9800..97dd877cf 100644 --- a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java +++ b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java @@ -441,14 +441,16 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) InputBuilder.checkbox().name(id).id(id) ).appendTo(out); - StringBuilder onchange = new StringBuilder("b = this.checked;"); + StringBuilder onchange = new StringBuilder("b = this.checked;\n"); // 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"); + // Issue 53620: instead of hiding the input, set it "disabled" via CSS (but not actually disabled so it will still submit) + onchange.append("document.getElementsByName('").append(col.getFormFieldName(ctx)).append("')[0].style.opacity = b ? 0.6 : 1;\n"); + onchange.append("document.getElementsByName('").append(col.getFormFieldName(ctx)).append("')[0].style.pointerEvents = b ? 'none' : 'all';\n"); } - onchange.append("if (b) { ").append(groupName).append("Updated(); }"); + onchange.append("if (b) { ").append(groupName).append("Updated(); }\n"); HttpView.currentPageConfig().addHandler(id, "change", onchange.toString()); } diff --git a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java index 7bde52e82..115940e55 100644 --- a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java +++ b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java @@ -55,18 +55,15 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) DisplayColumn col = getColumns().get(i); if (col.getColumnInfo() != null) { - onChange.append("s = document.getElementsByName('") - .append(col.getFormFieldName(ctx)) - .append("')[0].options.length;\n") - .append("document.getElementsByName('") - .append(col.getFormFieldName(ctx)) - .append("')[0].style.display = b || s == 0 ? 'none' : 'block';\n"); + // Issue 53620: instead of hiding the input, set it "disabled" via CSS (but not actually disabled so it will still submit) + onChange.append("document.getElementsByName('").append(col.getFormFieldName(ctx)).append("')[0].style.opacity = b ? 0.6 : 1;\n"); + onChange.append("document.getElementsByName('").append(col.getFormFieldName(ctx)).append("')[0].style.pointerEvents = b ? 'none' : 'all';\n"); } } onChange.append(" if (b) { ") .append(inputName) - .append("Updated(); }"); + .append("Updated(); }\n"); HttpView.currentPageConfig().addHandler(id, "change", onChange.toString()); return ret; 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 a2a0ec3a1..4b3f1489d 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -132,8 +132,7 @@ public void uploadRun() // make sure the Standard checkboxes are checked checkCheckbox(Locator.name("_titrationRole_standard_Standard1")); checkCheckbox(Locator.name("titration_" + ANALYTE1 + "_Standard1")); - checkCheckbox(Locator.name("titration_" + ANALYTE2 + "_Standard1")); - checkCheckbox(Locator.name("titration_" + ANALYTE3 + "_Standard1")); + checkCheckbox(Locator.name("titration_" + ANALYTE1 + "_Standard1CheckBox")); // Issue 53620: "Same" checkbox for standards // make sure that that QC Control checkbox is checked checkCheckbox(Locator.name("_titrationRole_qccontrol_Standard1")); // set LotNumber for the first analyte