From 16b4eeb67325e34f913d8d1c6b6782b11a3bf37e Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 27 Jun 2025 18:22:33 -0700 Subject: [PATCH 01/11] Update input element names --- .../importwizard/BatchPropertiesWebPart.java | 2 +- .../importwizard/RunPropertiesWebPart.java | 4 ++-- .../pages/luminex/LuminexImportWizard.java | 6 ++--- .../tests/luminex/LuminexAsyncImportTest.java | 21 +++++++++-------- .../luminex/LuminexExcludedTitrationTest.java | 3 ++- .../tests/luminex/LuminexGuideSetTest.java | 3 ++- .../luminex/LuminexJavaTransformTest.java | 5 ++-- .../luminex/LuminexMultipleCurvesTest.java | 2 +- .../tests/luminex/LuminexRTransformTest.java | 5 ++-- .../test/tests/luminex/LuminexTest.java | 8 ++++--- .../luminex/LuminexUploadAndLinkTest.java | 23 ++++++++++--------- .../util/luminex/LuminexGuideSetHelper.java | 6 ++--- 12 files changed, 48 insertions(+), 40 deletions(-) diff --git a/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java b/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java index 2007eff199..9aaf275312 100644 --- a/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java +++ b/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java @@ -67,6 +67,6 @@ public class Elements extends WebPartPanel.ElementCache public static class Locators { - protected static final Locator sampleInfoRadio = Locator.radioButtonByNameAndValue("participantVisitResolver", "SampleInfo"); + protected static final Locator sampleInfoRadio = Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "SampleInfo"); } } \ No newline at end of file diff --git a/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java b/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java index 2ad10d2f88..b425352874 100644 --- a/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java +++ b/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java @@ -17,6 +17,7 @@ import org.labkey.test.Locator; import org.labkey.test.components.WebPartPanel; +import org.labkey.test.tests.study.AssayTest; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -25,7 +26,6 @@ public class RunPropertiesWebPart extends WebPartPanel { private static final String TITLE = "Run Properties"; - public static final String ASSAY_ID_FIELD = "name"; public static final String ASSAY_DATA_FILE_LOCATION_MULTIPLE_FIELD = "__primaryFile__"; protected RunPropertiesWebPart(WebElement componentElement, WebDriver driver) @@ -67,7 +67,7 @@ public void replaceFileInAssayRun(File original, File newFile) public void setRunId(String runId) { - getWrapper().setFormElement(Locator.inputById(ASSAY_ID_FIELD), runId); + getWrapper().setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runId); } public static class RunPropertiesWebPartFinder extends WebPartFinder diff --git a/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java b/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java index a5df8ac3ee..9abe4d74ac 100644 --- a/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java +++ b/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java @@ -22,6 +22,7 @@ import org.labkey.test.components.luminex.importwizard.DefineWellRoleWebPart; import org.labkey.test.components.luminex.importwizard.RunPropertiesWebPart; import org.labkey.test.pages.LabKeyPage; +import org.labkey.test.tests.study.AssayTest; import java.io.File; import java.util.function.Consumer; @@ -36,9 +37,6 @@ */ public class LuminexImportWizard extends LabKeyPage { - public static final String ASSAY_ID_FIELD = "name"; - - Elements _elements; public LuminexImportWizard(WebDriverWrapper driver) { @@ -129,7 +127,7 @@ public void createNewAssayRun( String runId, Consumer step1 step1.accept(this); clickNext(); - setFormElement(Locator.name(ASSAY_ID_FIELD), runId); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runId); if (step2 != null) step2.accept(this); clickNext(); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 0b2528b62c..0423fb654e 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -24,12 +24,15 @@ import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; import org.labkey.test.pages.ReactAssayDesignerPage; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; import java.io.File; import java.util.Calendar; +import static org.junit.Assert.assertEquals; + @Category({Daily.class, Assays.class}) @BaseWebDriverTest.ClassTimeout(minutes = 7) public final class LuminexAsyncImportTest extends LuminexTest @@ -136,15 +139,15 @@ private void reimportLuminexRunPageTwo(String runId, String isotype, String conj String testDate, File file, int i) { // verify that all old values from the first imported run are present - assertFormElementEquals(Locator.name("name"), runId); - assertFormElementEquals(Locator.name("isotype"), isotype); - assertFormElementEquals(Locator.name("conjugate"), conjugate); - assertFormElementEquals(Locator.name("stndCurveFitInput"), stndCurveFitInput); - assertFormElementEquals(Locator.name("unkCurveFitInput"), unkCurveFitInput); - assertFormElementEquals(Locator.name("notebookNo"), notebookNo); - assertFormElementEquals(Locator.name("assayType"), assayType); - assertFormElementEquals(Locator.name("expPerformer"), expPerformer); - assertFormElementEquals(Locator.name("testDate"), testDate); + assertEquals(runId, getFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR)); + assertEquals(isotype, getFormElement(Locator.name("isotype"))); + assertEquals(conjugate, getFormElement(Locator.name("conjugate"))); + assertEquals(stndCurveFitInput, getFormElement(Locator.name("stndCurveFitInput"))); + assertEquals(unkCurveFitInput, getFormElement(Locator.name("unkCurveFitInput"))); + assertEquals(notebookNo, getFormElement(Locator.name("notebookNo"))); + assertEquals(assayType, getFormElement(Locator.name("assayType"))); + assertEquals(expPerformer, getFormElement(Locator.name("expPerformer"))); + assertEquals(testDate, getFormElement(Locator.name("testDate"))); click(Locator.xpath("//a[contains(@class, 'labkey-file-add-icon-enabled')]")); setFormElement(Locator.name("__primaryFile__"), file); waitForText("A file with name '" + file.getName() + "' already exists"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java index 613ad3d749..c3739e174e 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java @@ -22,6 +22,7 @@ import org.labkey.test.Locators; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import java.io.File; @@ -88,7 +89,7 @@ public void testCrossPlateTitration() String runName = "Cross Plate titration"; waitForElement(Locators.panelWebpartTitle.withText("Run Properties")); - setFormElement(Locator.name("name"), runName); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFiles(files); clickButton("Next"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index 34355eaf32..64141a2c99 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -25,6 +25,7 @@ import org.labkey.test.categories.Daily; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExtHelper; import org.labkey.test.util.LogMethod; @@ -181,7 +182,7 @@ private void guideSetApiTest() String wikiName = "LuminexGuideSetTestWiki"; portalHelper.addWebPart("Wiki"); wikiHelper.createNewWikiPage("HTML"); - setFormElement(Locator.name("name"), wikiName); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, wikiName); wikiHelper.setWikiBody("Placeholder text."); wikiHelper.saveWikiPage(); File guideSetWiki = TestFileUtils.getSampleData("luminex/views/LuminexGuideSet.html"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java index 32a957a41d..1e5d06ac63 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java @@ -24,6 +24,7 @@ import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; import org.labkey.test.pages.ReactAssayDesignerPage; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import static org.junit.Assert.assertEquals; @@ -56,9 +57,9 @@ public void testJavaTransform() goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("species"), TEST_ASSAY_LUM_SET_PROP_SPECIES); + setFormElement(Locator.name("Species"), TEST_ASSAY_LUM_SET_PROP_SPECIES); clickButton("Next"); - setFormElement(Locator.name("name"), "transformed assayId"); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE1); clickButton("Next", 60000); clickButton("Save and Finish"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java index 6ae05cb708..028ba44952 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java @@ -144,7 +144,7 @@ private void reImportData(Map wellRoleMap) goToTestAssayHome(); click(Locator.linkContainingText(MULTIPLE_CURVE_ASSAY_RUN_NAME)); clickButtonContainingText("Re-import run"); - checkCheckbox(Locator.radioButtonByNameAndValue("participantVisitResolver", "SampleInfo")); + checkCheckbox(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "SampleInfo")); clickButtonContainingText("Next"); setFormElement(Locator.name(ASSAY_ID_FIELD), MULTIPLE_CURVE_ASSAY_RUN_NAME); clickButtonContainingText("Next"); 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 9b1aff83f3..49b55d943d 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -24,6 +24,7 @@ import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; import org.labkey.test.pages.ReactAssayDesignerPage; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LabKeyExpectedConditions; import org.labkey.test.util.LogMethod; @@ -121,7 +122,7 @@ public void uploadRun() clickButton("Import Data"); clickButton("Next"); - setFormElement(Locator.name("name"), "r script transformed assayId"); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "r script transformed assayId"); checkCheckbox(Locator.name("subtNegativeFromAll")); setFormElement(Locator.name("stndCurveFitInput"), "FI"); setFormElement(Locator.name("unkCurveFitInput"), "FI-Bkgd-Neg"); @@ -158,7 +159,7 @@ public void testNegativeBead() clickButton("Import Data"); clickButton("Next"); String assayRunId = "negative bead assayId"; - setFormElement(Locator.name("name"), assayRunId); + setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, assayRunId); uncheckCheckbox(Locator.name("subtNegativeFromAll")); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); waitForElement(Locator.id("file-upload-tbl").containing(TEST_ASSAY_LUM_FILE4.getName())); 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 5756d46467..f1d9edf7b9 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -39,6 +39,7 @@ import org.labkey.test.components.html.Checkbox; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.luminex.LuminexImportWizard; +import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExtHelper; import org.labkey.test.util.LogMethod; @@ -69,6 +70,7 @@ public abstract class LuminexTest extends BaseWebDriverTest protected final static String TEST_ASSAY_PRJ_LUMINEX = "LuminexTest Project"; protected final static String TEST_ASSAY_SUBFOLDER = "Subfolder";//project for luminex test + // Issue 51845: // - Luminex assay not working well when assay name contains dot (.) // - use DOMAIN_SPECIAL_STRING instead of DOMAIN_TRICKY_CHARACTERS since sql server is not working with unicode characters @@ -102,7 +104,6 @@ public abstract class LuminexTest extends BaseWebDriverTest public static final File RTRANSFORM_SCRIPT_FILE_LABKEY = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/labkey_luminex_transform.R"); public static final File RTRANSFORM_SCRIPT_FILE_LAB = new File(TestFileUtils.getLabKeyRoot(), "server/modules/commonAssays/luminex/resources/transformscripts/tomaras_luminex_transform.R"); - public static final String ASSAY_ID_FIELD = "name"; public static final String ASSAY_DATA_FILE_LOCATION_MULTIPLE_FIELD = "__primaryFile__"; public static final String DATA_TABLE_NAME = "Data"; @@ -120,6 +121,7 @@ public abstract class LuminexTest extends BaseWebDriverTest public static final String isotype = "IgG > Date: Sat, 28 Jun 2025 09:18:41 -0700 Subject: [PATCH 02/11] Fix build --- .../luminex/importwizard/RunPropertiesWebPart.java | 4 ++-- .../labkey/test/pages/luminex/LuminexImportWizard.java | 5 ++--- .../test/tests/luminex/LuminexAsyncImportTest.java | 4 ++-- .../tests/luminex/LuminexExcludedTitrationTest.java | 4 ++-- .../labkey/test/tests/luminex/LuminexGuideSetTest.java | 4 ++-- .../test/tests/luminex/LuminexJavaTransformTest.java | 4 ++-- .../test/tests/luminex/LuminexMultipleCurvesTest.java | 3 ++- .../test/tests/luminex/LuminexRTransformTest.java | 6 +++--- .../src/org/labkey/test/tests/luminex/LuminexTest.java | 6 +++--- .../test/tests/luminex/LuminexUploadAndLinkTest.java | 10 +++++----- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java b/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java index b425352874..4d1bbf3e89 100644 --- a/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java +++ b/luminex/test/src/org/labkey/test/components/luminex/importwizard/RunPropertiesWebPart.java @@ -17,7 +17,7 @@ import org.labkey.test.Locator; import org.labkey.test.components.WebPartPanel; -import org.labkey.test.tests.study.AssayTest; +import org.labkey.test.components.assay.AssayConstants; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -67,7 +67,7 @@ public void replaceFileInAssayRun(File original, File newFile) public void setRunId(String runId) { - getWrapper().setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runId); + getWrapper().setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); } public static class RunPropertiesWebPartFinder extends WebPartFinder diff --git a/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java b/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java index 9abe4d74ac..5d97a4ab31 100644 --- a/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java +++ b/luminex/test/src/org/labkey/test/pages/luminex/LuminexImportWizard.java @@ -15,14 +15,13 @@ */ package org.labkey.test.pages.luminex; -import org.labkey.test.Locator; import org.labkey.test.WebDriverWrapper; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.luminex.importwizard.AnalytePropertiesWebPart; import org.labkey.test.components.luminex.importwizard.BatchPropertiesWebPart; import org.labkey.test.components.luminex.importwizard.DefineWellRoleWebPart; import org.labkey.test.components.luminex.importwizard.RunPropertiesWebPart; import org.labkey.test.pages.LabKeyPage; -import org.labkey.test.tests.study.AssayTest; import java.io.File; import java.util.function.Consumer; @@ -127,7 +126,7 @@ public void createNewAssayRun( String runId, Consumer step1 step1.accept(this); clickNext(); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runId); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); if (step2 != null) step2.accept(this); clickNext(); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 0423fb654e..2c23dcfc8d 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -23,8 +23,8 @@ import org.labkey.test.Locator; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LogMethod; @@ -139,7 +139,7 @@ private void reimportLuminexRunPageTwo(String runId, String isotype, String conj String testDate, File file, int i) { // verify that all old values from the first imported run are present - assertEquals(runId, getFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR)); + assertEquals(runId, getFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR)); assertEquals(isotype, getFormElement(Locator.name("isotype"))); assertEquals(conjugate, getFormElement(Locator.name("conjugate"))); assertEquals(stndCurveFitInput, getFormElement(Locator.name("stndCurveFitInput"))); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java index c3739e174e..8b2eeef0a4 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexExcludedTitrationTest.java @@ -22,7 +22,7 @@ import org.labkey.test.Locators; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; -import org.labkey.test.tests.study.AssayTest; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import java.io.File; @@ -89,7 +89,7 @@ public void testCrossPlateTitration() String runName = "Cross Plate titration"; waitForElement(Locators.panelWebpartTitle.withText("Run Properties")); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runName); uploadAssayFiles(files); clickButton("Next"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index 64141a2c99..ee41988d64 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -23,9 +23,9 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.params.FieldDefinition; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExtHelper; import org.labkey.test.util.LogMethod; @@ -182,7 +182,7 @@ private void guideSetApiTest() String wikiName = "LuminexGuideSetTestWiki"; portalHelper.addWebPart("Wiki"); wikiHelper.createNewWikiPage("HTML"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, wikiName); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, wikiName); wikiHelper.setWikiBody("Placeholder text."); wikiHelper.saveWikiPage(); File guideSetWiki = TestFileUtils.getSampleData("luminex/views/LuminexGuideSet.html"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java index 1e5d06ac63..cb5a819a52 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexJavaTransformTest.java @@ -23,8 +23,8 @@ import org.labkey.test.TestFileUtils; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import static org.junit.Assert.assertEquals; @@ -59,7 +59,7 @@ public void testJavaTransform() clickButton("Import Data"); setFormElement(Locator.name("Species"), TEST_ASSAY_LUM_SET_PROP_SPECIES); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "transformed assayId"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE1); clickButton("Next", 60000); clickButton("Save and Finish"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java index 028ba44952..42fc575b7a 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java @@ -23,6 +23,7 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.LogMethod; import org.labkey.test.util.LoggedParam; import org.openqa.selenium.WebElement; @@ -146,7 +147,7 @@ private void reImportData(Map wellRoleMap) clickButtonContainingText("Re-import run"); checkCheckbox(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "SampleInfo")); clickButtonContainingText("Next"); - setFormElement(Locator.name(ASSAY_ID_FIELD), MULTIPLE_CURVE_ASSAY_RUN_NAME); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, MULTIPLE_CURVE_ASSAY_RUN_NAME); clickButtonContainingText("Next"); for(String desc : wellRoleMap.keySet()) { 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 49b55d943d..9928bbb2d6 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -23,8 +23,8 @@ import org.labkey.test.WebTestHelper; import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.pages.ReactAssayDesignerPage; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.LabKeyExpectedConditions; import org.labkey.test.util.LogMethod; @@ -122,7 +122,7 @@ public void uploadRun() clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "r script transformed assayId"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "r script transformed assayId"); checkCheckbox(Locator.name("subtNegativeFromAll")); setFormElement(Locator.name("stndCurveFitInput"), "FI"); setFormElement(Locator.name("unkCurveFitInput"), "FI-Bkgd-Neg"); @@ -159,7 +159,7 @@ public void testNegativeBead() clickButton("Import Data"); clickButton("Next"); String assayRunId = "negative bead assayId"; - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, assayRunId); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, assayRunId); uncheckCheckbox(Locator.name("subtNegativeFromAll")); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); waitForElement(Locator.id("file-upload-tbl").containing(TEST_ASSAY_LUM_FILE4.getName())); 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 f1d9edf7b9..f5ffab3343 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -35,11 +35,11 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.components.html.BootstrapMenu; import org.labkey.test.components.html.Checkbox; import org.labkey.test.pages.ReactAssayDesignerPage; import org.labkey.test.pages.luminex.LuminexImportWizard; -import org.labkey.test.tests.study.AssayTest; import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.ExtHelper; import org.labkey.test.util.LogMethod; @@ -561,7 +561,7 @@ protected void createNewAssayRun(String assayName, String runId) wiz.startImport(); wiz.checkParticipantVisitResolver(); clickButtonContainingText("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runId); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); } public void goToQCAnalysisPage(String assayName, String submenuText) @@ -608,7 +608,7 @@ protected void importLuminexRunPageTwo(String runId, String isotype, String conj String unkCurveFitInput, String notebookNo, String assayType, String expPerformer, String testDate, File file, int i, boolean expectDuplicateFile) { - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, runId); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); setFormElement(Locator.name("isotype"), isotype); setFormElement(Locator.name("conjugate"), conjugate); setFormElement(Locator.name("stndCurveFitInput"), stndCurveFitInput); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java index 6b92a46a6e..4f9a789415 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java @@ -23,7 +23,7 @@ import org.labkey.test.categories.Assays; import org.labkey.test.categories.Daily; import org.labkey.test.categories.Study; -import org.labkey.test.tests.study.AssayTest; +import org.labkey.test.components.assay.AssayConstants; import org.labkey.test.util.DataRegionTable; import static org.junit.Assert.assertEquals; @@ -67,7 +67,7 @@ public void testUploadAndLink() clickButton("Import Data"); setFormElement(SPECIES_LOCATOR, TEST_ASSAY_LUM_SET_PROP_SPECIES); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, TEST_ASSAY_LUM_RUN_NAME); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, TEST_ASSAY_LUM_RUN_NAME); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE1); clickButton("Next", 60000); clickButton("Save and Import Another Run"); @@ -77,7 +77,7 @@ public void testUploadAndLink() assertEquals(TEST_ASSAY_LUM_SET_PROP_SPECIES, getFormElement(SPECIES_LOCATOR)); setFormElement(SPECIES_LOCATOR, TEST_ASSAY_LUM_SET_PROP_SPECIES2); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, TEST_ASSAY_LUM_RUN_NAME2); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, TEST_ASSAY_LUM_RUN_NAME2); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE2); clickButton("Next", 60000); setFormElement(Locator.name("_analyte_IL-1b_StandardName"), "StandardName1b"); @@ -173,7 +173,7 @@ public void testUploadAndLink() _ext4Helper.selectComboBoxItem(Locator.id("thawListQueryName"), THAW_LIST_NAME); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, TEST_ASSAY_LUM_RUN_NAME4); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, TEST_ASSAY_LUM_RUN_NAME4); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE3); waitForText("A file with name '" + TEST_ASSAY_LUM_FILE3.getName() + "' already exists"); clickButton("Next", 60000); @@ -236,7 +236,7 @@ public void testUploadAndLink() clickAndWait(Locator.linkWithText(TEST_ASSAY_LUM)); clickButton("Import Data"); clickButton("Next"); - setFormElement(AssayTest.ASSAY_NAME_FIELD_LOCATOR, "raw and summary"); + setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "raw and summary"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE10); clickButton("Next", 60000); clickButton("Save and Finish"); From c2911e37e528c6612a0eb7ccd4539682aea00811 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sat, 28 Jun 2025 16:53:25 -0600 Subject: [PATCH 03/11] Test fixes --- .../labkey/test/tests/luminex/LuminexTest.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 f5ffab3343..a51b429369 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -609,14 +609,14 @@ protected void importLuminexRunPageTwo(String runId, String isotype, String conj String testDate, File file, int i, boolean expectDuplicateFile) { setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, runId); - setFormElement(Locator.name("isotype"), isotype); - setFormElement(Locator.name("conjugate"), conjugate); - setFormElement(Locator.name("stndCurveFitInput"), stndCurveFitInput); - setFormElement(Locator.name("unkCurveFitInput"), unkCurveFitInput); - setFormElement(Locator.name("notebookNo"), notebookNo); - setFormElement(Locator.name("assayType"), assayType); - setFormElement(Locator.name("expPerformer"), expPerformer); - setFormElement(Locator.name("testDate"), testDate); + setFormElement(Locator.name("Isotype"), isotype); + setFormElement(Locator.name("Conjugate"), conjugate); + setFormElement(Locator.name("StndCurveFitInput"), stndCurveFitInput); + setFormElement(Locator.name("UnkCurveFitInput"), unkCurveFitInput); + setFormElement(Locator.name("NotebookNo"), notebookNo); + setFormElement(Locator.name("AssayType"), assayType); + setFormElement(Locator.name("ExpPerformer"), expPerformer); + setFormElement(Locator.name("TestDate"), testDate); setFormElement(Locator.name("__primaryFile__"), file); if (expectDuplicateFile) From 4e3b36a25ded231624329eef79993ec2392880e5 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sun, 29 Jun 2025 07:38:07 -0600 Subject: [PATCH 04/11] Test fixes --- .../org/labkey/luminex/LuminexDataHandler.java | 2 +- .../tests/luminex/LuminexAsyncImportTest.java | 18 +++++++++--------- .../tests/luminex/LuminexGuideSetTest.java | 2 +- .../tests/luminex/LuminexPositivityTest.java | 6 +++--- .../tests/luminex/LuminexRTransformTest.java | 8 ++++---- .../tests/luminex/LuminexSinglePointTest.java | 2 +- .../labkey/test/tests/luminex/LuminexTest.java | 6 +++--- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/luminex/src/org/labkey/luminex/LuminexDataHandler.java b/luminex/src/org/labkey/luminex/LuminexDataHandler.java index e4390b5a3b..e1d77fa14b 100644 --- a/luminex/src/org/labkey/luminex/LuminexDataHandler.java +++ b/luminex/src/org/labkey/luminex/LuminexDataHandler.java @@ -141,7 +141,7 @@ public class LuminexDataHandler extends AbstractExperimentDataHandler implements public static final String QC_FLAG_SINGLE_POINT_CONTROL_ID = "SinglePointControlId"; // Column name to use in createQCFlagEnabledSQLFragment public static final String POSITIVITY_THRESHOLD_COLUMN_NAME = "PositivityThreshold"; public static final String POSITIVITY_THRESHOLD_DISPLAY_NAME = "Positivity Threshold"; - public static final String CALCULATE_POSITIVITY_COLUMN_NAME = "calculatePositivity"; + public static final String CALCULATE_POSITIVITY_COLUMN_NAME = "CalculatePositivity"; public static final String NEGATIVE_CONTROL_COLUMN_NAME = "NegativeControl"; public static final String NEGATIVE_BEAD_COLUMN_NAME = "NegativeBead"; public static final String NEGATIVE_BEAD_DISPLAY_NAME = "Subtract Negative Bead"; diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 2c23dcfc8d..ebac45ae1e 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -140,14 +140,14 @@ private void reimportLuminexRunPageTwo(String runId, String isotype, String conj { // verify that all old values from the first imported run are present assertEquals(runId, getFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR)); - assertEquals(isotype, getFormElement(Locator.name("isotype"))); - assertEquals(conjugate, getFormElement(Locator.name("conjugate"))); - assertEquals(stndCurveFitInput, getFormElement(Locator.name("stndCurveFitInput"))); - assertEquals(unkCurveFitInput, getFormElement(Locator.name("unkCurveFitInput"))); - assertEquals(notebookNo, getFormElement(Locator.name("notebookNo"))); - assertEquals(assayType, getFormElement(Locator.name("assayType"))); - assertEquals(expPerformer, getFormElement(Locator.name("expPerformer"))); - assertEquals(testDate, getFormElement(Locator.name("testDate"))); + assertEquals(isotype, getFormElement(Locator.name("Isotype"))); + assertEquals(conjugate, getFormElement(Locator.name("Conjugate"))); + assertEquals(stndCurveFitInput, getFormElement(Locator.name("StndCurveFitInput"))); + assertEquals(unkCurveFitInput, getFormElement(Locator.name("UnkCurveFitInput"))); + assertEquals(notebookNo, getFormElement(Locator.name("NotebookNo"))); + assertEquals(assayType, getFormElement(Locator.name("AssayType"))); + assertEquals(expPerformer, getFormElement(Locator.name("ExpPerformer"))); + assertEquals(testDate, getFormElement(Locator.name("TestDate"))); click(Locator.xpath("//a[contains(@class, 'labkey-file-add-icon-enabled')]")); setFormElement(Locator.name("__primaryFile__"), file); waitForText("A file with name '" + file.getName() + "' already exists"); @@ -184,7 +184,7 @@ private void importRunForTestLuminexConfig(File file, Calendar testDate, int i) { goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NETWORK" + (i + 1)); + setFormElement(Locator.name("Network"), "NETWORK" + (i + 1)); clickButton("Next"); testDate.add(Calendar.DATE, 1); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index ee41988d64..af3de74d3e 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -182,7 +182,7 @@ private void guideSetApiTest() String wikiName = "LuminexGuideSetTestWiki"; portalHelper.addWebPart("Wiki"); wikiHelper.createNewWikiPage("HTML"); - setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, wikiName); + setFormElement(Locator.name("name"), wikiName); wikiHelper.setWikiBody("Placeholder text."); wikiHelper.saveWikiPage(); File guideSetWiki = TestFileUtils.getSampleData("luminex/views/LuminexGuideSet.html"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java index b4f2b4e8c2..df8576f455 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexPositivityTest.java @@ -125,7 +125,7 @@ public void testImportAnalyteDefaults() } createNewAssayRun(assayName, RUN_ID_BASE + " Check Imported Defaults"); - checkCheckbox(Locator.name("calculatePositivity")); + checkCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE13, false); List analytePropertyRows = PortalHelper.Locators.webPart("Analyte Properties").findElement(getDriver()) @@ -149,7 +149,7 @@ private void testDefaultAnalyteProperties() // for issue 20549 :upload a run that unchecks the "Calucate Positivity" and then verify the default value for re-runs and new imports createNewAssayRun(TEST_ASSAY_LUM, RUN_ID_BASE + " No Pos Calc"); - uncheckCheckbox(Locator.name("calculatePositivity")); + uncheckCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE12, true); clickButton("Save and Finish"); @@ -158,7 +158,7 @@ private void testDefaultAnalyteProperties() verifyThresholdForReImportRun(1, 98); createNewAssayRun(TEST_ASSAY_LUM, RUN_ID_BASE + " Threshold Default Test"); - checkCheckbox(Locator.name("calculatePositivity")); + checkCheckbox(Locator.name("CalculatePositivity")); selectPositivityFile(TEST_ASSAY_LUM_FILE12, true); verifyAnalytePosThresholdValue(_analyteNames.get(0), 98); clickButton("Cancel"); 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 9928bbb2d6..d11bae795c 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -123,8 +123,8 @@ public void uploadRun() clickButton("Next"); setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "r script transformed assayId"); - checkCheckbox(Locator.name("subtNegativeFromAll")); - setFormElement(Locator.name("stndCurveFitInput"), "FI"); + checkCheckbox(Locator.name("SubtNegativeFromAll")); + setFormElement(Locator.name("StndCurveFitInput"), "FI"); setFormElement(Locator.name("unkCurveFitInput"), "FI-Bkgd-Neg"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); clickButton("Next", defaultWaitForPage * 2); @@ -160,12 +160,12 @@ public void testNegativeBead() clickButton("Next"); String assayRunId = "negative bead assayId"; setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, assayRunId); - uncheckCheckbox(Locator.name("subtNegativeFromAll")); + uncheckCheckbox(Locator.name("SubtNegativeFromAll")); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); waitForElement(Locator.id("file-upload-tbl").containing(TEST_ASSAY_LUM_FILE4.getName())); clickButton("Next", defaultWaitForPage * 2); - // uncheck all of the titration well role types + // uncheck all the titration well role types uncheckCheckbox(Locator.name("_titrationRole_standard_Standard1")); uncheckCheckbox(Locator.name("_titrationRole_qccontrol_Standard1")); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java index 6cf599dd3b..6f185ffb0a 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexSinglePointTest.java @@ -190,7 +190,7 @@ private void importRun(String filename, int runNumber) { goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NETWORK" + runNumber); + setFormElement(Locator.name("Network"), "NETWORK" + runNumber); clickButton("Next"); Calendar testDate = Calendar.getInstance(); 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 a51b429369..b61ac90e96 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexTest.java @@ -640,9 +640,9 @@ protected void createAndImpersonateUser(String user, String perms) public DataRegionTable uploadPositivityFile(String assayName, @LoggedParam String assayRunId, @LoggedParam File file, String baseVisit, String foldChange, boolean isBackgroundUpload, boolean expectDuplicateFile) { createNewAssayRun(assayName, assayRunId); - checkCheckbox(Locator.name("calculatePositivity")); - setFormElement(Locator.name("baseVisit"), baseVisit); - setFormElement(Locator.name("positivityFoldChange"), foldChange); + checkCheckbox(Locator.name("CalculatePositivity")); + setFormElement(Locator.name("BaseVisit"), baseVisit); + setFormElement(Locator.name("PositivityFoldChange"), foldChange); selectPositivityFile(file, expectDuplicateFile); setAnalytePropertyValues(); finishUploadPositivityFile(assayRunId, isBackgroundUpload); From 42f8300d162c5e926894dadf69d0a5708bbaadcc Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sun, 6 Jul 2025 13:41:37 -0700 Subject: [PATCH 05/11] Test fixes, consolidate code, add comments --- luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java | 1 + .../org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java | 1 + 2 files changed, 2 insertions(+) diff --git a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java index c3b2a481e6..41ca9bff70 100644 --- a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java +++ b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java @@ -432,6 +432,7 @@ else if (titrationEntry.getValue().isStandard()) public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { String titrationCellName = PageFlowUtil.filter(getTitrationColumnCellName(titrationEntry.getValue().getName())); + // Use propName because ids can't have spaces String groupName = ColumnInfo.propNameFromName(getColumns().get(0).getFormFieldName(ctx)); String id = groupName + "CheckBox"; diff --git a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java index bb25cdd40f..55005e07b9 100644 --- a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java +++ b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java @@ -44,6 +44,7 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { TD( isCopyable() ? (DOM.Renderable) ret -> { + // Use propName because ids can't have spaces String inputName = ColumnInfo.propNameFromName(_inputName); String id = inputName + "CheckBox"; InputBuilder.checkbox().name(id).id(id).appendTo(out); From fe28b45043918c6744bdd78d96b5bd3dc086e6be Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Sun, 6 Jul 2025 20:19:44 -0700 Subject: [PATCH 06/11] Test fixes --- .../org/labkey/test/tests/luminex/LuminexRTransformTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d11bae795c..c2489e0f2c 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexRTransformTest.java @@ -125,7 +125,7 @@ public void uploadRun() setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, "r script transformed assayId"); checkCheckbox(Locator.name("SubtNegativeFromAll")); setFormElement(Locator.name("StndCurveFitInput"), "FI"); - setFormElement(Locator.name("unkCurveFitInput"), "FI-Bkgd-Neg"); + setFormElement(Locator.name("UnkCurveFitInput"), "FI-Bkgd-Neg"); setFormElement(Locator.name("__primaryFile__"), TEST_ASSAY_LUM_FILE4); clickButton("Next", defaultWaitForPage * 2); From 2d03b457983d4c302e193648a0c392269d7ef9c6 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Mon, 7 Jul 2025 16:12:31 -0700 Subject: [PATCH 07/11] Test fixes --- .../flow/controllers/executescript/confirmRunsToImport.jsp | 4 ++-- .../executescript/importAnalysisChooseAnalysis.jsp | 5 +---- .../controllers/executescript/importAnalysisConfirm.jsp | 2 +- .../labkey/test/tests/luminex/LuminexAsyncImportTest.java | 2 +- .../org/labkey/test/tests/luminex/LuminexGuideSetTest.java | 2 +- .../test/tests/luminex/LuminexUploadAndLinkTest.java | 2 +- .../org/labkey/viability/ViabilityAssayDataHandler.java | 2 +- viability/src/org/labkey/viability/ViabilityResult.java | 7 ++++--- 8 files changed, 12 insertions(+), 14 deletions(-) diff --git a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp index 49b8c693ab..5b99a14841 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp @@ -86,8 +86,8 @@ to look up specimen information from the target study's specimen repository.

-
-

diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp index 8f274b591d..f51bfe9cef 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp @@ -233,11 +233,8 @@ if (form.getKeywordDir() != null && form.getKeywordDir().length > 0 && StudyPubl

Choose a target study folder:
- <%=select().name("targetStudy").className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") + <%=select().name("TargetStudy").className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") %> -<%-- --%>

<% diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp index 3e13288659..bd5bc629d0 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp @@ -93,7 +93,7 @@ <% } %> - +

You are about to import the analysis from the workspace with the following settings:

<% diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index ebac45ae1e..6648a252b6 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -105,7 +105,7 @@ private void importSecondRun(int index, Calendar testDate, File file) { int i = index; goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NEWNET" + (i + 1)); + setFormElement(Locator.name("Network"), "NEWNET" + (i + 1)); clickButton("Next"); testDate.add(Calendar.DATE, 1); importLuminexRunPageTwo("Guide Set plate " + (i+1), "new"+isotype, "new"+conjugate, "", "", "NewNote" + (i+1), diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java index af3de74d3e..aff589817a 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexGuideSetTest.java @@ -562,7 +562,7 @@ private void importPlateFiveAgain() goToTestAssayHome(); clickButton("Import Data"); - setFormElement(Locator.name("network"), "NETWORK" + (10)); + setFormElement(Locator.name("Network"), "NETWORK" + (10)); clickButton("Next"); importLuminexRunPageTwo("Reload guide set 5", isotype, conjugate, "", "", "Notebook" + 11, diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java index 4f9a789415..c3a3948a16 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java @@ -218,7 +218,7 @@ public void testUploadAndLink() region.setFilter("FI", "Equals", "20"); click(Locator.name(".toggle")); clickButton("Link to Study"); - selectOptionByText(Locator.name("targetStudy"), "/" + TEST_ASSAY_PRJ_LUMINEX + " (" + TEST_ASSAY_PRJ_LUMINEX + " Study)"); + selectOptionByText(AssayConstants.TARGET_STUDY_FIELD_LOCATOR, "/" + TEST_ASSAY_PRJ_LUMINEX + " (" + TEST_ASSAY_PRJ_LUMINEX + " Study)"); clickButton("Next"); setFormElement(Locator.name("participantId"), "ParticipantID"); setFormElement(Locator.name("visitId"), "100.1"); diff --git a/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java b/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java index 85c74bd420..f0e9a94657 100644 --- a/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java +++ b/viability/src/org/labkey/viability/ViabilityAssayDataHandler.java @@ -366,7 +366,7 @@ else if (targetStudyPair.getKey() == ExpProtocol.AssayDomainTypes.Result) // If the property is on the result domain, it's already in the base map. if (batchOrRunTargetStudy != null) { - base.put("targetStudy", batchOrRunTargetStudy); + base.put(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, batchOrRunTargetStudy); } ViabilityResult result = ViabilityResult.fromMap(base, extra); diff --git a/viability/src/org/labkey/viability/ViabilityResult.java b/viability/src/org/labkey/viability/ViabilityResult.java index d41b5bf867..df05fa8d6a 100644 --- a/viability/src/org/labkey/viability/ViabilityResult.java +++ b/viability/src/org/labkey/viability/ViabilityResult.java @@ -18,6 +18,7 @@ import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.Nullable; +import org.labkey.api.assay.AbstractAssayProvider; import org.labkey.api.exp.PropertyDescriptor; import org.labkey.api.collections.CaseInsensitiveHashMap; @@ -97,8 +98,8 @@ else if (o instanceof List) throw new IllegalArgumentException("Expected comma separated list or a collecting of specimen IDs"); } - if (base.get("targetStudy") instanceof String) - result.setTargetStudy((String)base.get("targetStudy")); + if (base.get(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME) instanceof String s) + result.setTargetStudy(s); if (extra != null) result.setProperties(extra); @@ -130,7 +131,7 @@ public Map toMap() // NOTE: The 'list' version of 'SpecimenIDs' is used when the guava file is parsed. ret.put("specimenIDs", getSpecimenIDList()); - ret.put("targetStudy", getTargetStudy()); + ret.put(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, getTargetStudy()); ret.putAll(getStringProperties()); return ret; From 11307e4cf9dfb103b0c204ba09cb7892f101ee96 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 8 Jul 2025 16:30:13 -0700 Subject: [PATCH 08/11] Improve detection of an idle indexer --- .../org/labkey/test/tests/luminex/LuminexAsyncImportTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java index 6648a252b6..c1fe1fe96b 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexAsyncImportTest.java @@ -123,7 +123,7 @@ private void reimportFirstRun(int index, Calendar testDate, File file) goToTestAssayHome(); new DataRegionTable("Runs", getDriver()).checkCheckbox(1); clickButton("Re-import run"); - Assert.assertEquals("Form did not remember values from first import", "NETWORK1", getFormElement(Locator.name("network"))); + Assert.assertEquals("Form did not remember values from first import", "NETWORK1", getFormElement(Locator.name("Network"))); clickButton("Next"); testDate.add(Calendar.DATE, 1); reimportLuminexRunPageTwo("Guide Set plate " + (i+1), isotype, conjugate, "", "", "Notebook" + (i+1), From 01fbf1c5f795dd0870853bc7153c148d9ce2b197 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Thu, 10 Jul 2025 10:56:22 -0700 Subject: [PATCH 09/11] Test fixes --- .../src/org/labkey/test/tests/ms2/MS2Test.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java b/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java index 6f575d7925..a0380297ae 100644 --- a/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java +++ b/ms2/test/src/org/labkey/test/tests/ms2/MS2Test.java @@ -799,11 +799,11 @@ private void validateRunGroups() clickAndWait(Locator.linkWithImage(WebTestHelper.getContextPath() + "/experiment/images/graphIcon.gif")); clickAndWait(Locator.id("expandCollapse-experimentRunGroup"), 0); clickButton("Create new group"); - setFormElement(Locator.name("name"), RUN_GROUP1_NAME1); - setFormElement(Locator.name("contactId"), RUN_GROUP1_CONTACT); - setFormElement(Locator.name("experimentDescriptionURL"), RUN_GROUP1_DESCRIPTION); - setFormElement(Locator.name("hypothesis"), RUN_GROUP1_HYPOTHESIS); - setFormElement(Locator.name("comments"), RUN_GROUP1_COMMENTS); + setFormElement(Locator.name("Name"), RUN_GROUP1_NAME1); + setFormElement(Locator.name("ContactId"), RUN_GROUP1_CONTACT); + setFormElement(Locator.name("ExperimentDescriptionURL"), RUN_GROUP1_DESCRIPTION); + setFormElement(Locator.name("Hypothesis"), RUN_GROUP1_HYPOTHESIS); + setFormElement(Locator.name("Comments"), RUN_GROUP1_COMMENTS); clickButton("Submit"); clickAndWait(Locator.id("expandCollapse-experimentRunGroup"), 0); assertTextPresent(RUN_GROUP1_NAME1, @@ -815,11 +815,11 @@ private void validateRunGroups() clickAndWait(Locator.linkWithText("Run Groups")); clickButton("Create Run Group"); clickButton("Submit"); - setFormElement(Locator.name("name"), RUN_GROUP3_NAME); + setFormElement(Locator.name("Name"), RUN_GROUP3_NAME); clickButton("Submit"); clickButton("Create Run Group"); - setFormElement(Locator.name("name"), RUN_GROUP2_NAME); + setFormElement(Locator.name("Name"), RUN_GROUP2_NAME); clickButton("Submit"); log("Test editing run group info"); @@ -831,7 +831,7 @@ private void validateRunGroups() RUN_GROUP1_HYPOTHESIS, RUN_GROUP1_COMMENTS); clickButton("Edit"); - setFormElement(Locator.name("name"), RUN_GROUP1_NAME2); + setFormElement(Locator.name("Name"), RUN_GROUP1_NAME2); clickButton("Submit"); FieldKey runGroupFK = FieldKey.fromParts("RunGroupToggle"); @@ -1235,7 +1235,7 @@ private void validateContainerFilter() goToProjectHome(getProjectName()); clickAndWait(Locator.linkWithText("Run Groups")); clickButton("Create Run Group"); - setFormElement(Locator.name("name"), RUN_GROUP3_NAME); + setFormElement(Locator.name("Name"), RUN_GROUP3_NAME); clickButton("Submit"); navigateToFolder(FOLDER_NAME); From 51950d5b426dd04ee7d79748b347b8fec06b996e Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Mon, 14 Jul 2025 12:49:31 -0700 Subject: [PATCH 10/11] More constants for field names --- .../org/labkey/elispot/query/ElispotRunDataTable.java | 2 +- .../controllers/executescript/confirmRunsToImport.jsp | 5 +++-- .../executescript/importAnalysisChooseAnalysis.jsp | 3 ++- .../executescript/importAnalysisConfirm.jsp | 3 ++- flow/src/org/labkey/flow/data/FlowProperty.java | 3 ++- .../org/labkey/flow/query/FCSFileCoalescingColumn.java | 3 ++- .../luminex/importwizard/BatchPropertiesWebPart.java | 3 ++- .../test/tests/luminex/LuminexMultipleCurvesTest.java | 2 +- .../test/tests/luminex/LuminexUploadAndLinkTest.java | 10 +++++----- .../src/org/labkey/viability/ViabilityAssaySchema.java | 2 +- 10 files changed, 21 insertions(+), 15 deletions(-) diff --git a/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java b/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java index 937d62dfb4..c7dae5e4ef 100644 --- a/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java +++ b/elispotassay/src/org/labkey/elispot/query/ElispotRunDataTable.java @@ -170,7 +170,7 @@ public List getDefaultVisibleColumns() FieldKey runPropFieldKey = FieldKey.fromParts("Run"); fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("ProtocolName"))); fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("PlateReader"))); - fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("Batch"), FieldKey.fromString("TargetStudy"))); + fieldKeys.add(FieldKey.fromParts(runPropFieldKey, FieldKey.fromString("Batch"), FieldKey.fromString(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME))); return fieldKeys; } diff --git a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp index 5b99a14841..cbfff7cb17 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/confirmRunsToImport.jsp @@ -30,6 +30,7 @@ <%@ page import="java.util.LinkedHashMap" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.Set" %> +<%@ page import="org.labkey.api.assay.AbstractAssayProvider" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <% JspView me = HttpView.currentView(); @@ -86,8 +87,8 @@ to look up specimen information from the target study's specimen repository.

-
-

diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp index f51bfe9cef..c014072f56 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp @@ -36,6 +36,7 @@ <%@ page import="java.util.List" %> <%@ page import="java.util.Map" %> <%@ page import="java.util.Set" %> +<%@ page import="org.labkey.api.assay.AbstractAssayProvider" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <%@ taglib prefix="labkey" uri="http://www.labkey.org/taglib" %> <% @@ -233,7 +234,7 @@ if (form.getKeywordDir() != null && form.getKeywordDir().length > 0 && StudyPubl

Choose a target study folder:
- <%=select().name("TargetStudy").className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") + <%=select().name(<%= h(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME)%>).className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") %>

diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp index bd5bc629d0..30f9dc1104 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisConfirm.jsp @@ -42,6 +42,7 @@ <%@ page import="java.util.Map" %> <%@ page import="java.util.Set" %> <%@ page import="static org.labkey.flow.controllers.executescript.AnalysisScriptController.BACK_BUTTON_ACTION" %> +<%@ page import="org.labkey.api.assay.AbstractAssayProvider" %> <%@ page extends="org.labkey.api.jsp.JspBase" %> <% ImportAnalysisForm form = (ImportAnalysisForm)getModelBean(); @@ -93,7 +94,7 @@ <% } %> - +

You are about to import the analysis from the workspace with the following settings:

<% diff --git a/flow/src/org/labkey/flow/data/FlowProperty.java b/flow/src/org/labkey/flow/data/FlowProperty.java index 6581f94b3f..c6721cb6b4 100644 --- a/flow/src/org/labkey/flow/data/FlowProperty.java +++ b/flow/src/org/labkey/flow/data/FlowProperty.java @@ -16,6 +16,7 @@ package org.labkey.flow.data; +import org.labkey.api.assay.AbstractAssayProvider; import org.labkey.api.exp.PropertyType; import org.labkey.api.exp.property.SystemProperty; @@ -35,7 +36,7 @@ abstract public class FlowProperty static public final SystemProperty AnalysisEngine = new SystemProperty(PROPERTY_BASE + "AnalysisEngine", PropertyType.STRING); // Property on FlowRun ExpRun object: container id of target study - static public final SystemProperty TargetStudy = new SystemProperty(PROPERTY_BASE + "TargetStudy", PropertyType.STRING); + static public final SystemProperty TargetStudy = new SystemProperty(PROPERTY_BASE + AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, PropertyType.STRING); // Property on FlowFCSFile ExpData object: true when the FlowFCSFile was created from an external analysis (extracted from FlowJo workspace or analysis archive) //static public final SystemProperty ExtraKeywordsFCSFile = new SystemProperty(PROPERTY_BASE + "ExtraKeywordsFCSFile", PropertyType.BOOLEAN); diff --git a/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java b/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java index 246a469e17..2a81685ffb 100644 --- a/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java +++ b/flow/src/org/labkey/flow/query/FCSFileCoalescingColumn.java @@ -16,6 +16,7 @@ package org.labkey.flow.query; import org.jetbrains.annotations.Nullable; +import org.labkey.api.assay.AbstractAssayProvider; import org.labkey.api.data.ColumnInfo; import org.labkey.api.data.JdbcType; import org.labkey.api.data.SQLFragment; @@ -74,7 +75,7 @@ public FCSFileCoalescingColumn(TableInfo parent, FieldKey key, JdbcType type, @N _dateFieldKeys = Pair.of(dateFieldKey, FlowSchema.rewriteAsOriginalFCSFile(dateFieldKey)); } - FieldKey targetStudyFieldKey = relativeFromFCSFile ? FieldKey.fromParts("Run", "TargetStudy") : FieldKey.fromParts("FCSFile", "Run", "TargetStudy"); + FieldKey targetStudyFieldKey = relativeFromFCSFile ? FieldKey.fromParts("Run", AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME) : FieldKey.fromParts("FCSFile", "Run", "TargetStudy"); _targetStudyFieldKeys = Pair.of(targetStudyFieldKey, FlowSchema.rewriteAsOriginalFCSFile(targetStudyFieldKey)); } diff --git a/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java b/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java index 9aaf275312..6814efe105 100644 --- a/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java +++ b/luminex/test/src/org/labkey/test/components/luminex/importwizard/BatchPropertiesWebPart.java @@ -17,6 +17,7 @@ import org.labkey.test.Locator; import org.labkey.test.components.WebPartPanel; +import org.labkey.test.components.assay.AssayConstants; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -67,6 +68,6 @@ public class Elements extends WebPartPanel.ElementCache public static class Locators { - protected static final Locator sampleInfoRadio = Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "SampleInfo"); + protected static final Locator sampleInfoRadio = Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "SampleInfo"); } } \ No newline at end of file diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java index 42fc575b7a..084a14a499 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexMultipleCurvesTest.java @@ -145,7 +145,7 @@ private void reImportData(Map wellRoleMap) goToTestAssayHome(); click(Locator.linkContainingText(MULTIPLE_CURVE_ASSAY_RUN_NAME)); clickButtonContainingText("Re-import run"); - checkCheckbox(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "SampleInfo")); + checkCheckbox(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "SampleInfo")); clickButtonContainingText("Next"); setFormElement(AssayConstants.ASSAY_NAME_FIELD_LOCATOR, MULTIPLE_CURVE_ASSAY_RUN_NAME); clickButtonContainingText("Next"); diff --git a/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java b/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java index c3a3948a16..cb01a09f50 100644 --- a/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java +++ b/luminex/test/src/org/labkey/test/tests/luminex/LuminexUploadAndLinkTest.java @@ -88,8 +88,8 @@ public void testUploadAndLink() // Upload another run using a thaw list pasted in as a TSV clickButton("Import Data"); assertEquals(TEST_ASSAY_LUM_SET_PROP_SPECIES2, getFormElement(SPECIES_LOCATOR)); - checkCheckbox(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "Lookup")); - checkCheckbox(Locator.radioButtonByNameAndValue("ThawListType", "Text")); + checkCheckbox(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "Lookup")); + checkCheckbox(Locator.radioButtonByNameAndValue(AssayConstants.THAW_LIST_TYPE_FIELD_NAME, "Text")); setFormElement(Locator.id("ThawListTextArea"), "Index\tSpecimenID\tParticipantID\tVisitID\n" + "1\tSpecimenID1\tParticipantID1\t1.1\n" + "2\tSpecimenID2\tParticipantID2\t1.2\n" + @@ -163,10 +163,10 @@ public void testUploadAndLink() // Upload another run using a thaw list that pointed at the list we uploaded earlier clickButton("Import Data"); assertEquals(TEST_ASSAY_LUM_SET_PROP_SPECIES2, getFormElement(SPECIES_LOCATOR)); - assertRadioButtonSelected(Locator.radioButtonByNameAndValue("ParticipantVisitResolver", "Lookup")); - assertRadioButtonSelected(Locator.radioButtonByNameAndValue("ThawListType", "Text")); + assertRadioButtonSelected(Locator.radioButtonByNameAndValue(AssayConstants.PARTICIPANT_VISIT_RESOLVER_FIELD_NAME, "Lookup")); + assertRadioButtonSelected(Locator.radioButtonByNameAndValue(AssayConstants.THAW_LIST_TYPE_FIELD_NAME, "Text")); - checkCheckbox(Locator.radioButtonByNameAndValue("ThawListType", "List")); + checkCheckbox(Locator.radioButtonByNameAndValue(AssayConstants.THAW_LIST_TYPE_FIELD_NAME, "List")); waitForElement(Locator.css(".schema-loaded-marker")); _ext4Helper.selectComboBoxItem(Locator.id("thawListSchemaName"), "lists"); waitForElement(Locator.css(".query-loaded-marker")); diff --git a/viability/src/org/labkey/viability/ViabilityAssaySchema.java b/viability/src/org/labkey/viability/ViabilityAssaySchema.java index 37f39e99a0..b317cc17dc 100644 --- a/viability/src/org/labkey/viability/ViabilityAssaySchema.java +++ b/viability/src/org/labkey/viability/ViabilityAssaySchema.java @@ -362,7 +362,7 @@ public TableInfo getLookupTableInfo() private MutableColumnInfo createTargetStudyCol() { - var col = wrapColumn(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, getRealTable().getColumn("TargetStudy")); + var col = wrapColumn(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME, getRealTable().getColumn(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME)); fixupRenderers(col, col); col.setUserEditable(false); col.setReadOnly(true); From 6af541252547205b4f1f33db176fcfc35b893edd Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Mon, 14 Jul 2025 14:38:39 -0700 Subject: [PATCH 11/11] Eliminate ColumnInfo.propNameFromName() --- .../importAnalysisChooseAnalysis.jsp | 2 +- .../labkey/flow/reports/FilterFlowReport.java | 2 +- .../labkey/luminex/LuminexRunUploadForm.java | 4 +- .../luminex/LuminexUploadWizardAction.java | 49 ++++++++++--------- .../AnalytePropStandardsDisplayColumn.java | 4 +- .../query/NegativeBeadDisplayColumnGroup.java | 5 +- .../luminex/view/titrationWellRoles.jsp | 18 +++---- 7 files changed, 45 insertions(+), 39 deletions(-) diff --git a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp index c014072f56..8c6d27aefd 100644 --- a/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp +++ b/flow/src/org/labkey/flow/controllers/executescript/importAnalysisChooseAnalysis.jsp @@ -234,7 +234,7 @@ if (form.getKeywordDir() != null && form.getKeywordDir().length > 0 && StudyPubl

Choose a target study folder:
- <%=select().name(<%= h(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME)%>).className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") + <%=select().name(AbstractAssayProvider.TARGET_STUDY_PROPERTY_NAME).className(null).addOptions(targetStudies).selected(unsafe(form.getTargetStudy())).onChange("document.getElementById('studyChanged').value = true;") %>

diff --git a/flow/src/org/labkey/flow/reports/FilterFlowReport.java b/flow/src/org/labkey/flow/reports/FilterFlowReport.java index b3f3750d8c..7f7cff4fb0 100644 --- a/flow/src/org/labkey/flow/reports/FilterFlowReport.java +++ b/flow/src/org/labkey/flow/reports/FilterFlowReport.java @@ -197,7 +197,7 @@ void addScriptProlog(ViewContext context, StringBuffer sb) private String oldLegalName(FieldKey fkey) { String r = AliasManager.makeLegalName(StringUtils.join(fkey.getParts(), "_"), FlowManager.get().getSchema().getSqlDialect(), false); - return ColumnInfo.propNameFromName(r).toLowerCase(); + return ColumnInfo.legalNameFromName(r).toLowerCase(); } protected void convertDateColumn(CachedResultSet rs, String fromCol, String toCol) throws SQLException diff --git a/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java b/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java index f77493c6ff..e6d719c23b 100644 --- a/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java +++ b/luminex/src/org/labkey/luminex/LuminexRunUploadForm.java @@ -268,7 +268,7 @@ public List getTitrations() throws ExperimentException titration.setName(titrationName); for (Titration.Type type : Titration.Type.values()) { - String propertyName = LuminexUploadWizardAction.getTitrationTypeCheckboxName(type, titration); + String propertyName = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(type, titration); if (getViewContext().getRequest().getParameter(propertyName) != null) { String hiddenValue = getViewContext().getRequest().getParameter(propertyName); @@ -293,7 +293,7 @@ public List getSinglePointControls() throws ExperimentExcept { SinglePointControl singlePointControl = new SinglePointControl(); singlePointControl.setName(singlePointControlName); - String propertyName = LuminexUploadWizardAction.getSinglePointControlCheckboxName(singlePointControlName); + String propertyName = LuminexUploadWizardAction.getSinglePointControlCheckboxNameAndId(singlePointControlName); if (StringUtils.isNotBlank(getViewContext().getRequest().getParameter(propertyName))) { result.add(singlePointControl); diff --git a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java index 41ca9bff70..a95fe9f5a5 100644 --- a/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java +++ b/luminex/src/org/labkey/luminex/LuminexUploadWizardAction.java @@ -60,6 +60,7 @@ import org.labkey.api.view.JspView; import org.labkey.api.view.VBox; import org.labkey.api.view.ViewServlet; +import org.labkey.api.view.template.PageConfig; import org.labkey.api.writer.HtmlWriter; import org.labkey.luminex.model.Analyte; import org.labkey.luminex.model.SinglePointControl; @@ -324,7 +325,7 @@ else if (analyteDefaultValue != null) } Titration existingTitration = existingTitrations.get(titrationEntry.getKey()); - String propertyName = getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + String propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value String defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isStandard()); @@ -359,7 +360,7 @@ else if (titrationEntry.getValue().isStandard()) if (!titrationEntry.getValue().isUnknown()) { - propertyName = getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isStandard()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isStandard()) ? "true" : ""; @@ -369,13 +370,13 @@ else if (titrationEntry.getValue().isStandard()) value = toShowStandardCheckboxColumn(errorReshow, standardTitrations, titrationEntry.getValue()) ? "true" : ""; view.getDataRegion().addHiddenFormField(getShowStandardCheckboxColumnName(titrationEntry.getValue()), value); - propertyName = getTitrationTypeCheckboxName(Titration.Type.qccontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.qccontrol, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isQcControl()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isQcControl()) ? "true" : ""; view.getDataRegion().addHiddenFormField(propertyName, value); - propertyName = getTitrationTypeCheckboxName(Titration.Type.othercontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.othercontrol, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isOtherControl()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isOtherControl()) ? "true" : ""; @@ -383,7 +384,7 @@ else if (titrationEntry.getValue().isStandard()) } else { - propertyName = getTitrationTypeCheckboxName(Titration.Type.unknown, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.unknown, titrationEntry.getValue()); // If we have an existing titration as a baseline from the run we're replacing, use its value defVal = existingTitration == null ? defaultWellRoleValues.get(propertyName) : Boolean.toString(existingTitration.isUnknown()); value = setInitialTitrationInput(errorReshow, propertyName, defVal, titrationEntry.getValue().isUnknown()) ? "true" : ""; @@ -400,7 +401,7 @@ else if (titrationEntry.getValue().isStandard()) boolean existingSinglePointControl = existingSinglePointControls.contains(singlePointControl); - propertyName = getSinglePointControlCheckboxName(singlePointControl); + propertyName = getSinglePointControlCheckboxNameAndId(singlePointControl); // If we have an existing singlePointControl as a baseline from the run we're replacing, use its value defVal = existingSinglePointControl ? "true" : defaultWellRoleValues.get(propertyName); value = setInitialSinglePointControlInput(errorReshow, propertyName, defVal) ? "true" : ""; @@ -431,9 +432,9 @@ else if (titrationEntry.getValue().isStandard()) @Override public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { - String titrationCellName = PageFlowUtil.filter(getTitrationColumnCellName(titrationEntry.getValue().getName())); - // Use propName because ids can't have spaces - String groupName = ColumnInfo.propNameFromName(getColumns().get(0).getFormFieldName(ctx)); + String titrationCellName = PageFlowUtil.filter(getTitrationColumnCellNameAndId(titrationEntry.getValue().getName())); + // DOM ids and JS function names can't have spaces + String groupName = PageConfig.makeIdFromName(getColumns().get(0).getFormFieldName(ctx)); String id = groupName + "CheckBox"; TD( @@ -454,7 +455,8 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) @Override public void writeCopyableJavaScript(RenderContext ctx, Writer out) throws IOException { - String groupName = ColumnInfo.propNameFromName(getColumns().get(0).getFormFieldName(ctx)); + // DOM ids and JS function names can't have spaces + String groupName = PageConfig.makeIdFromName(getColumns().get(0).getFormFieldName(ctx)); out.write("function " + groupName + "Updated() {\n"); out.write(" if (document.getElementById('" + groupName + "CheckBox') != null && document.getElementById('" + groupName + "CheckBox').checked) {\n"); out.write(" var v = document.getElementsByName('" + getColumns().get(0).getFormFieldName(ctx) + "')[0].checked;\n"); @@ -551,7 +553,7 @@ private JspView addExclusionWarning(LuminexRunUploadForm f private String getShowStandardCheckboxColumnName(Titration standard) { - String titrationCheckboxName = getTitrationTypeCheckboxName(Titration.Type.standard, standard); + String titrationCheckboxName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, standard); return titrationCheckboxName + "_showcol"; } @@ -692,19 +694,22 @@ protected RunStepHandler getRunStepHandler() return new LuminexRunStepHandler(); } - public static String getTitrationTypeCheckboxName(Titration.Type type, Titration titration) + public static String getTitrationTypeCheckboxNameAndId(Titration.Type type, Titration titration) { - return ColumnInfo.propNameFromName("_titrationRole_" + type + "_" + titration.getName()); + // DOM ids and JS function names can't have spaces + return PageConfig.makeIdFromName("_titrationRole_" + type + "_" + titration.getName()); } - public static String getSinglePointControlCheckboxName(String singlePointControl) + public static String getSinglePointControlCheckboxNameAndId(String singlePointControl) { - return ColumnInfo.propNameFromName("_singlePointControl_" + singlePointControl); + // DOM ids and JS function names can't have spaces + return PageConfig.makeIdFromName("_singlePointControl_" + singlePointControl); } - public static String getTitrationColumnCellName(String titrationName) + public static String getTitrationColumnCellNameAndId(String titrationName) { - return ColumnInfo.propNameFromName("_titrationcell_" + titrationName); + // DOM ids and JS function names can't have spaces + return PageConfig.makeIdFromName("_titrationcell_" + titrationName); } protected class LuminexRunStepHandler extends RunStepHandler @@ -807,21 +812,21 @@ public boolean executeStep(LuminexRunUploadForm form, BindException errors) thro // add the name/value pairs for the titration well role definition section if (!titrationEntry.getValue().isUnknown()) { - propertyName = getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); - propertyName = getTitrationTypeCheckboxName(Titration.Type.qccontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.qccontrol, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); - propertyName = getTitrationTypeCheckboxName(Titration.Type.othercontrol, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.othercontrol, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); } else { - propertyName = getTitrationTypeCheckboxName(Titration.Type.unknown, titrationEntry.getValue()); + propertyName = getTitrationTypeCheckboxNameAndId(Titration.Type.unknown, titrationEntry.getValue()); value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); } @@ -846,7 +851,7 @@ public boolean executeStep(LuminexRunUploadForm form, BindException errors) thro for (String singlePointControl : form.getParser().getSinglePointControls()) { // add the name/value pairs for the singlePointControl well role definition section - String propertyName = getSinglePointControlCheckboxName(singlePointControl); + String propertyName = getSinglePointControlCheckboxNameAndId(singlePointControl); boolean value = getViewContext().getRequest().getParameter(propertyName).equals("true"); defaultWellRoleValues.put(propertyName, Boolean.toString(value)); } diff --git a/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java b/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java index a83240a874..6164fcdc95 100644 --- a/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java +++ b/luminex/src/org/labkey/luminex/query/AnalytePropStandardsDisplayColumn.java @@ -121,7 +121,7 @@ else if (defVal == null || defVal.equalsIgnoreCase("true")) @Override public DOM._Attributes getInputAttributes() { - String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellName(_titration.getName()); + String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellNameAndId(_titration.getName()); return at(style, "display:" + (_hideCell ? "none" : "table-cell"), name, titrationCellName); } @@ -129,7 +129,7 @@ public DOM._Attributes getInputAttributes() @Override public void renderDetailsCaptionCell(RenderContext ctx, HtmlWriter out, @Nullable String cls) { - String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellName(_titration.getName()); + String titrationCellName = LuminexUploadWizardAction.getTitrationColumnCellNameAndId(_titration.getName()); TD( cl(cls).at(style, "display:" + (_hideCell ? "none" : "table-cell") + ";").name(titrationCellName), diff --git a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java index 55005e07b9..d6665d695d 100644 --- a/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java +++ b/luminex/src/org/labkey/luminex/query/NegativeBeadDisplayColumnGroup.java @@ -22,6 +22,7 @@ import org.labkey.api.util.DOM; import org.labkey.api.util.InputBuilder; import org.labkey.api.view.HttpView; +import org.labkey.api.view.template.PageConfig; import org.labkey.api.writer.HtmlWriter; import org.labkey.luminex.LuminexDataHandler; @@ -44,8 +45,8 @@ public void writeSameCheckboxCell(RenderContext ctx, HtmlWriter out) { TD( isCopyable() ? (DOM.Renderable) ret -> { - // Use propName because ids can't have spaces - String inputName = ColumnInfo.propNameFromName(_inputName); + // DOM ids and JS function names can't have spaces + String inputName = PageConfig.makeIdFromName(_inputName); String id = inputName + "CheckBox"; InputBuilder.checkbox().name(id).id(id).appendTo(out); StringBuilder onChange = new StringBuilder("b = this.checked;\n"); diff --git a/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp b/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp index b86252bfe1..5fd1cac48d 100644 --- a/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp +++ b/luminex/src/org/labkey/luminex/view/titrationWellRoles.jsp @@ -84,11 +84,11 @@ <% for (Map.Entry titrationEntry : nonUnknownTitrations.entrySet()) { - String standardId = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue()); + String standardId = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue()); addHandler(standardId, "click", "titrationRoleChecked(this);showHideAnalytePropertyColumn();"); - String qcId = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.qccontrol, titrationEntry.getValue()); + String qcId = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.qccontrol, titrationEntry.getValue()); addHandler(qcId, "click", "titrationRoleChecked(this);"); - String otherId = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.othercontrol, titrationEntry.getValue()); + String otherId = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.othercontrol, titrationEntry.getValue()); addHandler(otherId, "click", "titrationRoleChecked(this);"); %> @@ -122,7 +122,7 @@ <% for (Map.Entry titrationEntry : unknownTitrations.entrySet()) { - String id = LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.unknown, titrationEntry.getValue()); + String id = LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.unknown, titrationEntry.getValue()); addHandler(id, "click", "titrationRoleChecked(this);"); %> @@ -150,7 +150,7 @@ <% for (String trackedSinglePointControl : trackedSinglePointControls) { - String id = LuminexUploadWizardAction.getSinglePointControlCheckboxName(trackedSinglePointControl); + String id = LuminexUploadWizardAction.getSinglePointControlCheckboxNameAndId(trackedSinglePointControl); addHandler(id, "click", "titrationRoleChecked(this);"); %> @@ -187,8 +187,8 @@ for (Map.Entry titrationEntry : nonUnknownTitrations.entrySet()) { %> - var titrationRoleName = '<%= h(LuminexUploadWizardAction.getTitrationTypeCheckboxName(Titration.Type.standard, titrationEntry.getValue())) %>'; - var titrationCellName = '<%= h(LuminexUploadWizardAction.getTitrationColumnCellName(titrationEntry.getValue().getName())) %>'; + var titrationRoleName = '<%= h(LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(Titration.Type.standard, titrationEntry.getValue())) %>'; + var titrationCellName = '<%= h(LuminexUploadWizardAction.getTitrationColumnCellNameAndId(titrationEntry.getValue().getName())) %>'; var isChecked = document.getElementsByName(titrationRoleName)[0].checked; // set the hidden helper showcol field value @@ -257,7 +257,7 @@ for (Titration.Type t : Titration.Type.values()) { %> - var propertyName = <%=q(LuminexUploadWizardAction.getTitrationTypeCheckboxName(t, titrationEntry.getValue())) %>; + var propertyName = <%=q(LuminexUploadWizardAction.getTitrationTypeCheckboxNameAndId(t, titrationEntry.getValue())) %>; var hiddenEl = getHiddenFormElement(propertyName); var inputEl = getInputFormElement(propertyName); if (hiddenEl && inputEl) @@ -270,7 +270,7 @@ for (String singlePointControl : trackedSinglePointControls) { %> - var propertyName = <%=q(LuminexUploadWizardAction.getSinglePointControlCheckboxName(singlePointControl)) %>; + var propertyName = <%=q(LuminexUploadWizardAction.getSinglePointControlCheckboxNameAndId(singlePointControl)) %>; var hiddenEl = getHiddenFormElement(propertyName); var inputEl = getInputFormElement(propertyName); if (hiddenEl && inputEl)