internal string MigrateEditableData(XmlElement page, XmlElement template, string lineage)
{
var newPage = (XmlElement) page.OwnerDocument.ImportNode(template, true);
page.ParentNode.ReplaceChild(newPage, page);
newPage.SetAttribute("id", page.Attributes["id"].Value);
var oldLineageAttr = page.Attributes["data-pagelineage"];
var oldLineage = oldLineageAttr == null ? "" : oldLineageAttr.Value;
newPage.SetAttribute("data-pagelineage", lineage);
//preserve the data-page attribute of the old page, which will normally be empty or missing
var dataPageValue = page.GetAttribute("data-page");
if(string.IsNullOrEmpty(dataPageValue))
{
newPage.RemoveAttribute("data-page");
}
else
{
newPage.SetAttribute("data-page", dataPageValue); //the template has these as data-page='extra'
}
// migrate text
MigrateChildren(page, "bloom-translationGroup", newPage);
// migrate images
MigrateChildren(page, "bloom-imageContainer", newPage);
return oldLineage;
}