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
2 changes: 1 addition & 1 deletion api/src/org/labkey/api/assay/AssayProtocolSchema.java
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ protected void overlayMetadata(TableInfo table, String name)

errors = new ArrayList<>();
Path dir = new Path(AssayService.ASSAY_DIR_NAME, getProvider().getResourceName(), QueryService.MODULE_QUERIES_DIRECTORY);
Collection<TableType> metadata = QueryService.get().findMetadataOverride(this, name, false, true, errors, dir);
Collection<TableType> metadata = QueryService.get().findMetadataOverride(this, name, false, false, errors, dir);
if (errors.isEmpty())
table.overlayMetadata(metadata, this, errors);
}
Expand Down
2 changes: 1 addition & 1 deletion api/src/org/labkey/api/data/DisplayColumn.java
Original file line number Diff line number Diff line change
Expand Up @@ -1013,7 +1013,7 @@ public String getCssStyle(RenderContext ctx)

// 34871: Support for column display width
if (!StringUtils.isBlank(getWidth()))
style += "word-break:break-all;";
style += "word-break:break-word;";

return style;
}
Expand Down
50 changes: 50 additions & 0 deletions api/src/org/labkey/api/reader/ExcelFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,18 @@
import org.apache.poi.ss.formula.FormulaParseException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.Comment;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
import org.apache.poi.ss.usermodel.Sheet;
Expand Down Expand Up @@ -133,6 +138,7 @@ public static Workbook create(InputStream is) throws IOException, InvalidFormatE
public static Workbook createFromArray(JSONArray sheetsArray, ExcelWriter.ExcelDocumentType docType)
{
Workbook workbook = docType.createWorkbook();
CreationHelper factory = workbook.getCreationHelper();

Map<String, CellStyle> customStyles = new HashMap<>();

Expand Down Expand Up @@ -175,6 +181,11 @@ public static Workbook createFromArray(JSONArray sheetsArray, ExcelWriter.ExcelD

boolean forceString = metadataObject != null && metadataObject.has("forceString") && Boolean.TRUE.equals(metadataObject.get("forceString"));

String cellComment = null;
if ( metadataObject != null && metadataObject.has("cellComment")){
cellComment = metadataObject.getString("cellComment");
}

Cell cell = row.createCell(colIndex);
if (value instanceof java.lang.Number)
{
Expand Down Expand Up @@ -229,6 +240,45 @@ else if (value != null)
{
cell.setCellStyle(cellStyle);
}
if (cell != null && cellComment != null)
{
//Determine the size of the comment box based on the length of the comment
int commentBoxWidth = 3;
int commentBoxHeight = 4;

if (cellComment.length() > 30 )
{
commentBoxHeight= 5;
}
if (cellComment.length() > 45 && cellComment.length() < 60)
{
commentBoxWidth= 4;
commentBoxHeight= 4;
}
if (cellComment.length() >= 60)
{
commentBoxHeight = 5;
}
if (cellComment.length() > 70)
{
commentBoxHeight = 6;
commentBoxWidth = 4;
}
ClientAnchor anchor = factory.createClientAnchor();
Drawing drawing = sheet.createDrawingPatriarch();

anchor.setCol1(cell.getColumnIndex()+1);
anchor.setCol2(cell.getColumnIndex()+commentBoxWidth);
anchor.setRow1(row.getRowNum()+1);
anchor.setRow2(row.getRowNum()+commentBoxHeight);

Comment comment = drawing.createCellComment(anchor);
RichTextString str = factory.createRichTextString(cellComment);
comment.setString(str);
comment.setAuthor("LabKey Server");

cell.setCellComment(comment);
}
}
}
}
Expand Down
4 changes: 3 additions & 1 deletion study/src/org/labkey/study/StudyModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@
import org.labkey.api.study.assay.AssayPublishService;
import org.labkey.api.study.reports.CrosstabReport;
import org.labkey.api.study.reports.CrosstabReportDescriptor;
import org.labkey.api.study.security.StudySecurityEscalationAuditProvider;
import org.labkey.api.usageMetrics.UsageMetricsService;
import org.labkey.api.util.PageFlowUtil;
import org.labkey.api.util.SystemMaintenance;
Expand Down Expand Up @@ -270,7 +271,7 @@ protected void init()
StudySerializationRegistry.setInstance(StudySerializationRegistryImpl.get());

ExperimentService.get().addExperimentListener(new ExperimentListenerImpl());

DataViewService.get().registerProvider(DatasetViewProvider.TYPE, new DatasetViewProvider());
DataViewService.get().registerProvider(ReportViewProvider.TYPE, new ReportViewProvider());

Expand Down Expand Up @@ -354,6 +355,7 @@ protected void startupAfterSpringConfig(ModuleContext moduleContext)
AuditLogService.get().registerAuditType(new DatasetAuditProvider());
AuditLogService.get().registerAuditType(new StudyAuditProvider());
AuditLogService.get().registerAuditType(new SpecimenCommentAuditProvider());
AuditLogService.get().registerAuditType(new StudySecurityEscalationAuditProvider());

ReportService.get().registerReport(new StudyController.StudyChartReport());
ReportService.get().registerReport(new StudyQueryReport());
Expand Down
12 changes: 12 additions & 0 deletions study/src/org/labkey/study/query/DatasetUpdateService.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@
import org.labkey.api.query.SimpleValidationError;
import org.labkey.api.query.ValidationException;
import org.labkey.api.security.User;
import org.labkey.api.security.permissions.Permission;
import org.labkey.api.study.Dataset;
import org.labkey.api.study.security.StudySecurityEscalator;
import org.labkey.study.StudyServiceImpl;
import org.labkey.study.model.DatasetDefinition;
import org.labkey.api.qc.QCState;
Expand Down Expand Up @@ -83,6 +85,16 @@ public DatasetUpdateService(DatasetTableImpl table)
_columnMapping = createMVMapping(domain);
}

protected boolean hasPermission(User user, Class<? extends Permission> acl)
{
if (StudySecurityEscalator.isEscalated()) {
return true;
}
else {
return super.hasPermission(user, acl);
}
}

@Override
protected Map<String, Object> getRow(User user, Container container, Map<String, Object> keys)
throws InvalidKeyException
Expand Down