From 815fc05af6301e25b2b9eecff6250f489e088f59 Mon Sep 17 00:00:00 2001 From: Aldo Mihasi Date: Tue, 8 Feb 2022 09:44:55 +0200 Subject: [PATCH] fix missing section titles from word export --- .../logic/utilities/documents/word/WordBuilder.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java index a7d1f9d0d..e491b3b9f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/utilities/documents/word/WordBuilder.java @@ -191,6 +191,7 @@ public class WordBuilder { private Boolean createCompositeFields(List
compositeFields, XWPFDocument mainDocumentPart, Integer indent, Boolean createListing, VisibilityRuleService visibilityRuleService, Integer page, String section) { if (createListing) this.addListing(mainDocumentPart, indent, true, true); boolean hasValue = false; + boolean returnedValue = false; for (FieldSet compositeField: compositeFields) { if (visibilityRuleService.isElementVisible(compositeField.getId()) && hasVisibleFields(compositeField, visibilityRuleService)) { char c = 'a'; @@ -205,6 +206,9 @@ public class WordBuilder { } } hasValue = createFields(compositeField.getFields(), mainDocumentPart, 3, createListing, visibilityRuleService); + if(hasValue){ + returnedValue = true; + } if (compositeField.getMultiplicityItems() != null && !compositeField.getMultiplicityItems().isEmpty()) { List
list = compositeField.getMultiplicityItems().stream().sorted(Comparator.comparingInt(FieldSet::getOrdinal)).collect(Collectors.toList()); for (FieldSet multiplicityFieldset : list) { @@ -213,6 +217,9 @@ public class WordBuilder { addParagraphContent(c + ".\n", mainDocumentPart, ParagraphStyle.HEADER6, numId); } hasValue = createFields(multiplicityFieldset.getFields(), mainDocumentPart, 3, createListing, visibilityRuleService); + if(hasValue){ + returnedValue = true; + } } } if (hasValue && compositeField.getHasCommentField() && compositeField.getCommentFieldValue() != null && !compositeField.getCommentFieldValue().isEmpty() && !createListing) { @@ -225,7 +232,7 @@ public class WordBuilder { } } } - return hasValue; + return returnedValue; } private Boolean createFields(List fields, XWPFDocument mainDocumentPart, Integer indent, Boolean createListing, VisibilityRuleService visibilityRuleService) {