Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.labkey.api.reports.report.ScriptOutput;
import org.labkey.api.reports.report.r.AbstractParamReplacement;
import org.labkey.api.util.FileUtil;
import org.labkey.api.util.Path;

import java.io.File;

Expand Down Expand Up @@ -49,7 +50,7 @@ protected final File getSubstitution(File directory, String extension)
fileName = getName().concat(extension);

if (directory != null)
file = FileUtil.appendName(directory, fileName);
file = FileUtil.appendPath(directory, Path.parse(fileName));
}
if (file != null)
addFile(file);
Expand Down
32 changes: 17 additions & 15 deletions assay/src/org/labkey/assay/AssayIntegrationTestCase.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@
<%@ page import="java.io.IOException" %>
<%@ page import="org.apache.commons.collections.MapUtils" %>
<%@ page import="org.labkey.vfs.FileSystemLike" %>
<%@ page import="static org.junit.Assert.assertEquals" %>
<%@ page import="static org.junit.Assert.assertNotEquals" %>

<%@ page extends="org.labkey.api.jsp.JspTest.BVT" %>
<%!
Expand Down Expand Up @@ -559,18 +561,18 @@
runsQUS.updateRows(user, c, Collections.singletonList(updated), null, errors, null, null);
// verify runs modified is changed, but created is not
Map<String, Object> modifiedRunResults = new TableSelector(runsTable, selectColumns, new SimpleFilter("rowId", runRowId), null).getMap();
assertTrue(modifiedRunResults.get("Created").equals(runOriginalCreated));
assertFalse(modifiedRunResults.get("Modified").equals(runOriginalModified));
assertEquals("modifiedRunResults should have the same Created", modifiedRunResults.get("Created"), runOriginalCreated);
assertNotEquals("modifiedRunResults should have a different Modified", modifiedRunResults.get("Modified"), runOriginalModified);

// verify results created/modified matches run's created in query table
Map<String, Object> queryResultAfterRunModify = new TableSelector(resultsTable, selectColumns, new SimpleFilter(runFieldKey, runRowId), null).getMap();
assertTrue(queryResultAfterRunModify.get("Created").equals(runOriginalCreated));
assertTrue(queryResultAfterRunModify.get("Modified").equals(runOriginalCreated));
assertFalse(queryResultAfterRunModify.get("Modified").equals(modifiedRunResults.get("Modified")));
assertEquals("queryResultAfterRunModify should have the same Created", queryResultAfterRunModify.get("Created"), runOriginalCreated);
assertEquals("queryResultAfterRunModify should have the same Modified", queryResultAfterRunModify.get("Modified"), runOriginalCreated);
assertNotEquals("queryResultAfterRunModify should have a different Modified", queryResultAfterRunModify.get("Modified"), modifiedRunResults.get("Modified"));

// verify created/modified in provisioned result table is still not populated after run edit
dbResult = getRealResult(resultsTable.getSchema(), realResultsTable.getName(), resultRowId);
assertTrue(dbResult.get("Created") == null && dbResult.get("Modified") == null);
assertTrue("Created and Modified in the provisioned result table weren't as expected", dbResult.get("Created") == null && dbResult.get("Modified") == null);

// now edit the result
QueryUpdateService resultsQUS = resultsTable.getUpdateService();
Expand All @@ -582,18 +584,18 @@

// verify result created matches run's created in query table, but result modified now differs from run's created
Map<String, Object> modifiedResults = new TableSelector(resultsTable, selectColumns, new SimpleFilter(runFieldKey, runRowId), null).getMap();
assertTrue(modifiedResults.get("Created").equals(runOriginalCreated));
assertFalse(modifiedResults.get("Created").equals(modifiedResults.get("Modified")));
assertFalse(modifiedResults.get("Modified").equals(runOriginalCreated));
assertFalse(modifiedResults.get("Modified").equals(runOriginalModified));
assertFalse(modifiedResults.get("Modified").equals(modifiedRunResults.get("Modified")));
assertEquals("modifiedResults Created didn't match runOriginalCreated", modifiedResults.get("Created"), runOriginalCreated);
assertNotEquals("modifiedResults Created shouldn't match modifiedResult Modified", modifiedResults.get("Created"), modifiedResults.get("Modified"));
assertNotEquals("modifiedResults Modified shouldn't match runOriginalCreated", modifiedResults.get("Modified"), runOriginalCreated);
assertNotEquals("modifiedResults Modified shouldn't match runOriginalModified", modifiedResults.get("Modified"), runOriginalModified);
assertNotEquals("modifiedResults Modified shouldn't match modifiedRunResults Modified", modifiedResults.get("Modified"), modifiedRunResults.get("Modified"));

// verify modified in provisioned result table no longer null after result edit
dbResult = getRealResult(resultsTable.getSchema(), realResultsTable.getName(), resultRowId);
assertTrue(dbResult.get("Created") == null && dbResult.get("CreatedBy") == null);
assertFalse(dbResult.get("Modified") == null || dbResult.get("ModifiedBy") == null);
assertTrue(dbResult.get("Modified").equals(modifiedResults.get("Modified")));
assertTrue(dbResult.get("ModifiedBy").equals(modifiedResults.get("ModifiedBy")));
assertTrue("dbResult shouldn't have Created or CreatedBy", dbResult.get("Created") == null && dbResult.get("CreatedBy") == null);
assertFalse("dbResult didn't have a Modified or ModifiedBy", dbResult.get("Modified") == null || dbResult.get("ModifiedBy") == null);
assertEquals("dbResults Modified didn't match", dbResult.get("Modified"), modifiedResults.get("Modified"));
assertEquals("dbResults ModifiedBy didn't match", dbResult.get("ModifiedBy"), modifiedResults.get("ModifiedBy"));
}

@Test
Expand Down
14 changes: 14 additions & 0 deletions experiment/src/org/labkey/experiment/api/BaseFieldsTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.BaseColumnInfo;
import org.labkey.api.data.ColumnInfo;
import org.labkey.api.data.ContainerFilter;
import org.labkey.api.data.JdbcType;
import org.labkey.api.data.MutableColumnInfo;
Expand All @@ -13,6 +14,7 @@
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.FilteredTable;
import org.labkey.api.security.permissions.AdminPermission;
import org.labkey.api.security.permissions.Permission;

public abstract class BaseFieldsTable extends FilteredTable<ExpSchema>
{
Expand All @@ -32,6 +34,18 @@ public BaseFieldsTable(String tableName, @NotNull ExpSchema userSchema, @Nullabl
addWrapColumn(_rootTable.getColumn("Description"));
addWrapColumn(_rootTable.getColumn("RangeURI"));
addWrapColumn(_rootTable.getColumn("StorageColumnName"));
addWrapColumn(_rootTable.getColumn("ConceptURI"));

// Add the other columns in case they're useful for future troubleshooting, but keep them out
// of the way by default
for (ColumnInfo column : _rootTable.getColumns())
{
if (getColumn(column.getName()) == null)
{
addWrapColumn(column).setHidden(true);
}
}

}

protected MutableColumnInfo addColumn(String name, JdbcType type)
Expand Down
3 changes: 2 additions & 1 deletion experiment/src/org/labkey/experiment/api/PhiFieldsTable.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@ public PhiFieldsTable(@NotNull ExpSchema userSchema, @Nullable ContainerFilter c
setDescription("Shows one row for each PHI-annotated field in the selected folder(s). Rows are shown in " +
"a folder or project only if the user has administrator permissions in that folder.");

MutableColumnInfo phi = addColumn("PHI", JdbcType.VARCHAR);
MutableColumnInfo phi = getMutableColumnOrThrow("PHI");
phi.setDescription("PHI Annotation");
phi.setHidden(false);

addCondition(new SimpleFilter(phi.getFieldKey(), "NotPHI", CompareType.NEQ));
}
Expand Down