From 762a3757fc8a58651cbaa6b8655b29632138dec1 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Wed, 7 Sep 2022 11:39:36 +0300 Subject: [PATCH] Cli: Fix theme selection for basic theme (angular) --- .../Building/Steps/ChangeThemeStep.cs | 53 +++++++++++++++++++ ...RemoveDependencyFromPackageJsonFileStep.cs | 3 +- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs index d1236ce2eb..f3b0fed914 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs @@ -105,6 +105,24 @@ public class ChangeThemeStep : ProjectBuildPipelineStep "node_modules/bootstrap-icons/font/bootstrap-icons.css" ); + if(defaultThemeName == "LeptonX") + { + ReplaceMethodNames( + context, + "/angular/src/app/app.module.ts", + "HttpErrorComponent, ", + "" + ); + + ChangeModuleImportBetweenStatements( + context, + "/angular/src/app/app.module.ts", + "ThemeSharedModule.forRoot", + "AccountAdminConfigModule.forRoot", + "ThemeSharedModule.forRoot()," + ); + } + #endregion } @@ -510,6 +528,41 @@ public class ChangeThemeStep : ProjectBuildPipelineStep file.SetLines(lines.Where(x => x != null)); } + private void ChangeModuleImportBetweenStatements( + ProjectBuildContext context, + string filePath, + string firstStatement, + string lastStatement, + string newStatement) + { + var file = context.Files.FirstOrDefault(x => x.Name.Contains(filePath)); + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + var firstLineIndex = lines.FindIndex(line => line.Contains(firstStatement)); + var lastLineIndex = lines.FindIndex(line => line.Contains(lastStatement)); + + if(firstLineIndex == -1 || lastLineIndex == -1) + { + return; + } + + lines[firstLineIndex] = newStatement; + + for (var i = firstLineIndex + 1; i <= lastLineIndex; i++) + { + lines[i] = null; + } + + + file.SetLines(lines.Where(x => x != null)); + } + protected void ReplaceMethodNames( ProjectBuildContext context, string filePath, diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs index 3eabb6621e..bff28d703b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveDependencyFromPackageJsonFileStep.cs @@ -17,8 +17,7 @@ public class RemoveDependencyFromPackageJsonFileStep : ProjectBuildPipelineStep public override void Execute(ProjectBuildContext context) { - var packageJsonFile = context.Files.FirstOrDefault(f => f.Name.Contains(_packageJsonFilePath)); - + var packageJsonFile = context.Files.FirstOrDefault(f => f.Name.Contains(_packageJsonFilePath) && !f.Name.Contains("node_modules")); if (packageJsonFile == null) { return;