diff --git a/src/Umbraco.Infrastructure/Packaging/PackageInstallation.cs b/src/Umbraco.Infrastructure/Packaging/PackageInstallation.cs index 1c7de01bb6..5409e2de3f 100644 --- a/src/Umbraco.Infrastructure/Packaging/PackageInstallation.cs +++ b/src/Umbraco.Infrastructure/Packaging/PackageInstallation.cs @@ -106,22 +106,39 @@ namespace Umbraco.Cms.Core.Packaging private IEnumerable RunPackageActions(PackageDefinition packageDefinition, IEnumerable actions) { - foreach (var n in actions) + var actionsElement = XElement.Parse(packageDefinition.Actions); + foreach (PackageAction action in actions) { //if there is an undo section then save it to the definition so we can run it at uninstallation - var undo = n.Undo; + var undo = action.Undo; if (undo) - packageDefinition.Actions += n.XmlData.ToString(); + { + actionsElement.Add(action.XmlData); + } + //Run the actions tagged only for 'install' - if (n.RunAt != ActionRunAt.Install) continue; + if (action.RunAt != ActionRunAt.Install) + { + continue; + } - if (n.Alias.IsNullOrWhiteSpace()) continue; + if (action.Alias.IsNullOrWhiteSpace()) + { + continue; + } //run the actions and report errors - if (!_packageActionRunner.RunPackageAction(packageDefinition.Name, n.Alias, n.XmlData, out var err)) - foreach (var e in err) yield return e; + if (!_packageActionRunner.RunPackageAction(packageDefinition.Name, action.Alias, action.XmlData, out var err)) + { + foreach (var e in err) + { + yield return e; + } + } } + + packageDefinition.Actions = actionsElement.ToString(); } private IEnumerable UndoPackageActions(IPackageInfo packageDefinition, IEnumerable actions) diff --git a/src/Umbraco.Web.UI.Client/src/views/packages/edit.html b/src/Umbraco.Web.UI.Client/src/views/packages/edit.html index 27ae599261..f78fc6e97b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/packages/edit.html +++ b/src/Umbraco.Web.UI.Client/src/views/packages/edit.html @@ -175,7 +175,7 @@
umb-expansion-panel__content + text="{{template.name}}">