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
16 changes: 8 additions & 8 deletions migration-examples/layout/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -954,11 +954,11 @@

baseRows.push([
baseTemplateId, baseTemplateName, basePageId, basePageName,
pageWidthMm, pageHeightMm,
String(areaGroupIndex),
flowName, String(flowToNextPage),
"Base", "",
flowName, String(flowToNextPage), String(areaGroupIndex),
`${draft.position.x}mm`, `${draft.position.y}mm`, `${draft.position.w}mm`, `${draft.position.h}mm`,
"Base", "", "",
pageWidthMm, pageHeightMm,
"",
]);
});

Expand Down Expand Up @@ -997,7 +997,7 @@
const rows = currentCsvRows.map(row => [...row]);

const typeIdx = ensureCsvColumn(headers, rows, "type");
const targetIdIdx = ensureCsvColumn(headers, rows, "targetId");
const targetIdIdx = ensureCsvColumn(headers, rows, "baseTemplateTargetId");
const flowNameIdx = ensureCsvColumn(headers, rows, "interactiveFlowName");

const { baseRows, overridesByPageIndex } = computeBaseTemplateData(currentData, currentViewModel, currentAnalysis);
Expand Down Expand Up @@ -1027,10 +1027,10 @@
baseRows.forEach(baseRow => {
const byLogicalName = {
templateId: baseRow[0], templateName: baseRow[1], pageId: baseRow[2], pageName: baseRow[3],
pageWidth: baseRow[4], pageHeight: baseRow[5], areaIndex: baseRow[6],
interactiveFlowName: baseRow[7], flowToNextPage: baseRow[8],
type: baseRow[4], baseTemplateTargetId: baseRow[5],
interactiveFlowName: baseRow[6], flowToNextPage: baseRow[7], areaIndex: baseRow[8],
x: baseRow[9], y: baseRow[10], width: baseRow[11], height: baseRow[12],
type: baseRow[13], targetId: baseRow[14], contentPreview: baseRow[15],
pageWidth: baseRow[13], pageHeight: baseRow[14], contentPreview: baseRow[15],
};
const row = headers.map(h => byLogicalName[normalizeHeaderName(h)] ?? "");
rows.push(row);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,17 +44,17 @@ static void run(Migration migration, Path path) {
Mapping.displayHeader("templateName", true),
Mapping.displayHeader("pageId", false),
Mapping.displayHeader("pageName", true),
Mapping.displayHeader("pageWidth", true),
Mapping.displayHeader("pageHeight", true),
Mapping.displayHeader("areaIndex", true),
Mapping.displayHeader("type", false),
Mapping.displayHeader("baseTemplateTargetId", false),
Mapping.displayHeader("interactiveFlowName", false),
Mapping.displayHeader("flowToNextPage", false),
Mapping.displayHeader("areaIndex", true),
Mapping.displayHeader("x", true),
Mapping.displayHeader("y", true),
Mapping.displayHeader("width", true),
Mapping.displayHeader("height", true),
Mapping.displayHeader("type", false),
Mapping.displayHeader("targetId", false),
Mapping.displayHeader("pageWidth", true),
Mapping.displayHeader("pageHeight", true),
Mapping.displayHeader("contentPreview", true),
]
writer.writeLine(headers.join(","))
Expand Down Expand Up @@ -107,19 +107,18 @@ static String buildArea(Migration migration, Number idx, Area area, DocumentObje
builder.append(Csv.serialize(template?.name) + ",")
builder.append(Csv.serialize(page?.id) + ",")
builder.append(Csv.serialize(page?.name) + ",")
def pageOptions = page?.options instanceof PageOptions ? page.options as PageOptions : null
builder.append(Csv.serialize(pageOptions?.width) + ",")
builder.append(Csv.serialize(pageOptions?.height) + ",")
builder.append(Csv.serialize(idx) + ",")
builder.append("Standard,")
builder.append(Csv.serialize(page?.baseTemplate ?: template?.baseTemplate) + ",")
builder.append(Csv.serialize(area.interactiveFlowName) + ",")
builder.append(Csv.serialize(area.flowToNextPage) + ",")
builder.append(Csv.serialize(idx) + ",")
builder.append(Csv.serialize(area.position.x) + ",")
builder.append(Csv.serialize(area.position.y) + ",")
builder.append(Csv.serialize(area.position.width) + ",")
builder.append(Csv.serialize(area.position.height) + ",")

builder.append("Standard,")
builder.append(Csv.serialize(page?.baseTemplate ?: template?.baseTemplate) + ",")
def pageOptions = page?.options instanceof PageOptions ? page.options as PageOptions : null
builder.append(Csv.serialize(pageOptions?.width) + ",")
builder.append(Csv.serialize(pageOptions?.height) + ",")

builder.append(Csv.serialize(migration.previewProvider.buildDocumentContentListPreview(area.content)))

Expand All @@ -132,18 +131,17 @@ static String buildBaseTemplateArea(BaseTemplate baseTemplate, String pageId, Ba
builder.append(Csv.serialize(baseTemplate.name) + ",")
builder.append(Csv.serialize(pageId) + ",")
builder.append(Csv.serialize(page.name) + ",")
builder.append(Csv.serialize(page.pageWidth) + ",")
builder.append(Csv.serialize(page.pageHeight) + ",")
builder.append(Csv.serialize(idx) + ",")
builder.append("Base,")
builder.append(Csv.serialize(null) + ",")
builder.append(Csv.serialize(area.interactiveFlowName) + ",")
builder.append(Csv.serialize(area.flowToNextPage) + ",")
builder.append(Csv.serialize(idx) + ",")
builder.append(Csv.serialize(area.position?.x) + ",")
builder.append(Csv.serialize(area.position?.y) + ",")
builder.append(Csv.serialize(area.position?.width) + ",")
builder.append(Csv.serialize(area.position?.height) + ",")

builder.append("Base,")
builder.append(Csv.serialize(null) + ",")
builder.append(Csv.serialize(page.pageWidth) + ",")
builder.append(Csv.serialize(page.pageHeight) + ",")

builder.append(Csv.serialize(null))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,13 @@ static void run(Migration migration, Path path) {
def flowToNextPage = Csv.deserialize(values.get("flowToNextPage"), Boolean.class)
areaMapping.flowToNextPage[areaIndex] = flowToNextPage ?: false

def targetId = Csv.deserialize(values.get("targetId"), String.class)
if (targetId) {
def baseTemplateTargetId = Csv.deserialize(values.get("baseTemplateTargetId"), String.class)
if (baseTemplateTargetId) {
if (pageId && !docObjectsToTargetIds.containsKey(pageId)) {
docObjectsToTargetIds[pageId] = targetId
docObjectsToTargetIds[pageId] = baseTemplateTargetId
}
if (templateId && !docObjectsToTargetIds.containsKey(templateId)) {
docObjectsToTargetIds[templateId] = targetId
docObjectsToTargetIds[templateId] = baseTemplateTargetId
}
}
}
Expand Down
36 changes: 18 additions & 18 deletions migration-examples/src/test/groovy/LayoutExportTest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ class LayoutExportTest {
LayoutExport.run(migration, mappingFile)

def expected = """\
templateId,templateName (read-only),pageId,pageName (read-only),pageWidth (read-only),pageHeight (read-only),areaIndex (read-only),interactiveFlowName,flowToNextPage,x (read-only),y (read-only),width (read-only),height (read-only),type,targetId,contentPreview (read-only)
full tmpl,,full page,,,,0,test flow2,false,0mm,0mm,0mm,0mm,Standard,,
full tmpl,,full page,,,,1,test flow3,true,0mm,0mm,0mm,0mm,Standard,,
full tmpl,,full page,,,,2,,false,0mm,0mm,0mm,0mm,Standard,,
full tmpl,,full page,,,,3,test flow5,false,0mm,0mm,0mm,0mm,Standard,,
,,unreferenced page,,,,0,test flow,true,0mm,0mm,0mm,0mm,Standard,,
templateId,templateName (read-only),pageId,pageName (read-only),type,baseTemplateTargetId,interactiveFlowName,flowToNextPage,areaIndex (read-only),x (read-only),y (read-only),width (read-only),height (read-only),pageWidth (read-only),pageHeight (read-only),contentPreview (read-only)
full tmpl,,full page,,Standard,,test flow2,false,0,0mm,0mm,0mm,0mm,,,
full tmpl,,full page,,Standard,,test flow3,true,1,0mm,0mm,0mm,0mm,,,
full tmpl,,full page,,Standard,,,false,2,0mm,0mm,0mm,0mm,,,
full tmpl,,full page,,Standard,,test flow5,false,3,0mm,0mm,0mm,0mm,,,
,,unreferenced page,,Standard,,test flow,true,0,0mm,0mm,0mm,0mm,,,
""".stripIndent()
Assertions.assertEquals(expected, mappingFile.toFile().text.replaceAll("\\r\\n|\\r", "\n"))
}
Expand All @@ -71,10 +71,10 @@ class LayoutExportTest {
LayoutExport.run(migration, mappingFile)

def expected = """\
templateId,templateName (read-only),pageId,pageName (read-only),pageWidth (read-only),pageHeight (read-only),areaIndex (read-only),interactiveFlowName,flowToNextPage,x (read-only),y (read-only),width (read-only),height (read-only),type,targetId,contentPreview (read-only)
tmpl with areas,,,,,,0,Address Content,false,0mm,0mm,0mm,0mm,Standard,,
tmpl with areas,,,,,,1,,true,0mm,0mm,0mm,0mm,Standard,,
tmpl with areas,,,,,,2,Footer,false,0mm,0mm,0mm,0mm,Standard,,
templateId,templateName (read-only),pageId,pageName (read-only),type,baseTemplateTargetId,interactiveFlowName,flowToNextPage,areaIndex (read-only),x (read-only),y (read-only),width (read-only),height (read-only),pageWidth (read-only),pageHeight (read-only),contentPreview (read-only)
tmpl with areas,,,,Standard,,Address Content,false,0,0mm,0mm,0mm,0mm,,,
tmpl with areas,,,,Standard,,,true,1,0mm,0mm,0mm,0mm,,,
tmpl with areas,,,,Standard,,Footer,false,2,0mm,0mm,0mm,0mm,,,
""".stripIndent()
Assertions.assertEquals(expected, mappingFile.toFile().text.replaceAll("\\r\\n|\\r", "\n"))
}
Expand All @@ -97,8 +97,8 @@ class LayoutExportTest {
LayoutExport.run(migration, mappingFile)

def expected = """\
templateId,templateName (read-only),pageId,pageName (read-only),pageWidth (read-only),pageHeight (read-only),areaIndex (read-only),interactiveFlowName,flowToNextPage,x (read-only),y (read-only),width (read-only),height (read-only),type,targetId,contentPreview (read-only)
tmpl with base,,page with own base,,,,0,test flow,false,0mm,0mm,0mm,0mm,Standard,\$G1,
templateId,templateName (read-only),pageId,pageName (read-only),type,baseTemplateTargetId,interactiveFlowName,flowToNextPage,areaIndex (read-only),x (read-only),y (read-only),width (read-only),height (read-only),pageWidth (read-only),pageHeight (read-only),contentPreview (read-only)
tmpl with base,,page with own base,,Standard,\$G1,test flow,false,0,0mm,0mm,0mm,0mm,,,
""".stripIndent()
Assertions.assertEquals(expected, mappingFile.toFile().text.replaceAll("\\r\\n|\\r", "\n"))
}
Expand All @@ -123,10 +123,10 @@ class LayoutExportTest {
LayoutExport.run(migration, mappingFile)

def expected = """\
templateId,templateName (read-only),pageId,pageName (read-only),pageWidth (read-only),pageHeight (read-only),areaIndex (read-only),interactiveFlowName,flowToNextPage,x (read-only),y (read-only),width (read-only),height (read-only),type,targetId,contentPreview (read-only)
bt-1,Base template 1,page-1,Page 1,210mm,297mm,0,address,false,1cm,1cm,190mm,20mm,Base,,
bt-1,Base template 1,page-1,Page 1,210mm,297mm,1,Area 2,true,1cm,30mm,190mm,50mm,Base,,
bt-1,Base template 1,page-2,Page 2,210mm,99mm,0,Area 1,false,0mm,0mm,210mm,99mm,Base,,
templateId,templateName (read-only),pageId,pageName (read-only),type,baseTemplateTargetId,interactiveFlowName,flowToNextPage,areaIndex (read-only),x (read-only),y (read-only),width (read-only),height (read-only),pageWidth (read-only),pageHeight (read-only),contentPreview (read-only)
bt-1,Base template 1,page-1,Page 1,Base,,address,false,0,1cm,1cm,190mm,20mm,210mm,297mm,
bt-1,Base template 1,page-1,Page 1,Base,,Area 2,true,1,1cm,30mm,190mm,50mm,210mm,297mm,
bt-1,Base template 1,page-2,Page 2,Base,,Area 1,false,0,0mm,0mm,210mm,99mm,210mm,99mm,
""".stripIndent()
Assertions.assertEquals(expected, mappingFile.toFile().text.replaceAll("\\r\\n|\\r", "\n"))
}
Expand Down Expand Up @@ -154,8 +154,8 @@ class LayoutExportTest {
LayoutExport.run(migration, mappingFile)

def expected = """\
templateId,templateName (read-only),pageId,pageName (read-only),pageWidth (read-only),pageHeight (read-only),areaIndex (read-only),interactiveFlowName,flowToNextPage,x (read-only),y (read-only),width (read-only),height (read-only),type,targetId,contentPreview (read-only)
,,page with preview,,,,0,test flow,false,0mm,0mm,0mm,0mm,Standard,,docRef: Block One;imageRef: Image One;docRef: Block Two;(+2 more)
templateId,templateName (read-only),pageId,pageName (read-only),type,baseTemplateTargetId,interactiveFlowName,flowToNextPage,areaIndex (read-only),x (read-only),y (read-only),width (read-only),height (read-only),pageWidth (read-only),pageHeight (read-only),contentPreview (read-only)
,,page with preview,,Standard,,test flow,false,0,0mm,0mm,0mm,0mm,,,docRef: Block One;imageRef: Image One;docRef: Block Two;(+2 more)
""".stripIndent()
Assertions.assertEquals(expected, mappingFile.toFile().text.replaceAll("\\r\\n|\\r", "\n"))
}
Expand Down
6 changes: 3 additions & 3 deletions migration-examples/src/test/groovy/LayoutImportTest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ class LayoutImportTest {
givenPageExists("page1", ["flow1", "flow2"], [false, false])

def input = """\
templateId,templateName,pageId,pageName,areaIndex,interactiveFlowName,flowToNextPage,x,y,width,height,type,targetId,contentPreview
templateId,templateName,pageId,pageName,areaIndex,interactiveFlowName,flowToNextPage,x,y,width,height,type,baseTemplateTargetId,contentPreview
tmpl1,,page1,,0,flow1,false,0.0mm,0.0mm,0.0mm,0.0mm,Standard,\$G1,
tmpl1,,page1,,1,flow2,false,0.0mm,0.0mm,0.0mm,0.0mm,Standard,\$G1,
""".stripIndent()
Expand Down Expand Up @@ -173,7 +173,7 @@ class LayoutImportTest {
when(migration.mappingRepository.getBaseTemplateMapping("G1")).thenReturn(new MappingItem.BaseTemplate(null, null, []))

def input = """\
templateId,templateName,pageId,pageName,pageWidth,pageHeight,areaIndex,interactiveFlowName,flowToNextPage,x,y,width,height,type,targetId,contentPreview
templateId,templateName,pageId,pageName,pageWidth,pageHeight,areaIndex,interactiveFlowName,flowToNextPage,x,y,width,height,type,baseTemplateTargetId,contentPreview
tmpl1,,page1,,,,0,flow1,false,0.0mm,0.0mm,0.0mm,0.0mm,Standard,\$G1,
G1,Base template 1,G1-P1,Page group 1,210mm,297mm,1,G1-P1.Area2,true,1cm,30mm,190mm,50mm,Base,,
G1,Base template 1,G1-P1,Page group 1,210mm,297mm,0,G1-P1.Area1,false,1cm,1cm,190mm,20mm,Base,,
Expand Down Expand Up @@ -205,7 +205,7 @@ class LayoutImportTest {
when(migration.mappingRepository.getBaseTemplateMapping("G1")).thenReturn(new MappingItem.BaseTemplate(null, null, []))

def input = """\
templateId,templateName,pageId,pageName,pageWidth,pageHeight,areaIndex,interactiveFlowName,flowToNextPage,x,y,width,height,type,targetId,contentPreview
templateId,templateName,pageId,pageName,pageWidth,pageHeight,areaIndex,interactiveFlowName,flowToNextPage,x,y,width,height,type,baseTemplateTargetId,contentPreview
G1,,G1-P1,Page group 1,210mm,297mm,0,G1-P1.Area1,false,1cm,1cm,190mm,20mm,Base,,
""".stripIndent()
mappingFile.toFile().write(input)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,16 @@
package com.quadient.migration.service

import com.quadient.migration.api.ProjectConfig
import com.quadient.migration.api.dto.migrationmodel.Attachment
import com.quadient.migration.api.dto.migrationmodel.AttachmentRef
import com.quadient.migration.api.dto.migrationmodel.BaseTemplate
import com.quadient.migration.api.dto.migrationmodel.BaseTemplateRef
import com.quadient.migration.api.dto.migrationmodel.BaseTemplateLocation
import com.quadient.migration.api.dto.migrationmodel.DisplayRule
import com.quadient.migration.api.dto.migrationmodel.DocumentContent
import com.quadient.migration.api.dto.migrationmodel.Image
import com.quadient.migration.api.dto.migrationmodel.ImageRef
import com.quadient.migration.api.dto.migrationmodel.LiteralBaseTemplatePath
import com.quadient.migration.api.dto.migrationmodel.ResourceRef
import com.quadient.migration.api.repository.Repository
import com.quadient.migration.shared.IcmPath
import com.quadient.migration.shared.ImageType
import com.quadient.migration.shared.isNullOrBlank
import com.quadient.migration.shared.toIcmPath
import org.slf4j.LoggerFactory
import java.lang.invoke.MethodHandles

Expand Down Expand Up @@ -63,33 +57,6 @@ fun resolveTargetDir(defaultTargetFolder: IcmPath? = null, specificTargetFolder:
}
}

fun getBaseTemplateFullPath(
config: ProjectConfig,
documentObjectBaseTemplate: BaseTemplateLocation?,
resourcePathProvider: ResourcePathProvider,
findBaseTemplate: (String) -> BaseTemplate,
): IcmPath {
val literalPath = when (documentObjectBaseTemplate) {
is LiteralBaseTemplatePath -> documentObjectBaseTemplate.path

is BaseTemplateRef -> {
val baseTemplate = findBaseTemplate(documentObjectBaseTemplate.id)
val baseTemplatePath = resourcePathProvider.getBaseTemplatePath(baseTemplate)
logger.info(
"Base template '$baseTemplatePath' will not be used because referencing base templates by id is not yet supported during deployment. The project config default base template will be used instead."
)
config.baseTemplatePath
}

null -> config.baseTemplatePath
}

val path = literalPath.toIcmPath()
if (path.isAbsolute()) return path

return resourcePathProvider.getBaseTemplatePath(literalPath)
}

fun DisplayRule.resolveTarget(findRule: (String) -> DisplayRule): DisplayRule {
val targetId = this.targetId ?: return this

Expand Down
Loading
Loading