From 3dc7b316c0420596f40fc774ae95f805000d3db9 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Tue, 6 Sep 2022 14:24:28 +0300 Subject: [PATCH] CLI: Fix theme selection for blazor (basic-theme) --- .../Building/Steps/ChangeThemeStep.cs | 8 +-- .../Templates/App/AppTemplateBase.cs | 55 ++++++++++--------- .../Microservice/MicroserviceTemplateBase.cs | 50 +++++++++-------- 3 files changed, 61 insertions(+), 52 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 33ecad0719..d1236ce2eb 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 @@ -61,7 +61,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ChangeNamespace( context, "/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", - $"Volo.Abp.AspNetCore.Components.Web.{defaultThemeName}Theme.Themes.{defaultThemeName}", + $"Volo.Abp.AspNetCore.Components.Web.{defaultThemeName}Theme.Components", "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic" ); @@ -69,7 +69,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep #region Blazor.Server Projects - ChangeThemeToBasicForBlazorServerProjects(context, defaultThemeName); + ChangeThemeToBasicForBlazorProjects(context, defaultThemeName); #endregion @@ -668,7 +668,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep } } - private void ChangeThemeToBasicForBlazorServerProjects(ProjectBuildContext context, string defaultThemeName) + private void ChangeThemeToBasicForBlazorProjects(ProjectBuildContext context, string defaultThemeName) { var projects = new Dictionary { @@ -733,7 +733,7 @@ public class ChangeThemeStep : ProjectBuildPipelineStep ChangeNamespaceAndKeyword( context, $"/MyCompanyName.MyProjectName.{project.Key}/Pages/_Host.cshtml", - $"Volo.Abp.AspNetCore.Components.Web.{defaultThemeName}Theme.Themes.{defaultThemeName}", + $"Volo.Abp.AspNetCore.Components.Web.{defaultThemeName}Theme.Components", "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic", $"Blazor{defaultThemeName}ThemeBundles.Styles.Global", "BlazorBasicThemeBundles.Styles.Global" diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index 16bea2740f..22d33be136 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -210,7 +210,7 @@ public abstract class AppTemplateBase : TemplateInfo } steps.Add(new ChangeThemeStep()); - RemoveLeptonXThemePackagesFromPackageJsonFiles(steps, isProTemplate: IsPro()); + RemoveLeptonXThemePackagesFromPackageJsonFiles(steps, isProTemplate: IsPro(), uiFramework: context.BuildArgs.UiFramework); } private static bool IsDefaultThemeForTemplate(Theme theme) @@ -224,50 +224,55 @@ public abstract class AppTemplateBase : TemplateInfo return defaultThemesForTemplates.Any(defaultTheme => defaultTheme == theme); } - private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps, bool isProTemplate) + private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps, bool isProTemplate, UiFramework uiFramework) { + var mvcUiPackageName = isProTemplate ? "@volo/abp.aspnetcore.mvc.ui.theme.leptonx" : "@abp/aspnetcore.mvc.ui.theme.leptonxlite"; var packageJsonFilePaths = new List { "/MyCompanyName.MyProjectName.Web/package.json", "/MyCompanyName.MyProjectName.Web.Host/package.json", "/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json", + "/MyCompanyName.MyProjectName.HttpApi.Host/package.json", "/MyCompanyName.MyProjectName.AuthServer/package.json", "/MyCompanyName.MyProjectName/package.json", "/MyCompanyName.MyProjectName.Host/package.json", "/MyCompanyName.MyProjectName.Host.Mongo/package.json" }; - - var blazorServerPackageJsonFilePaths = new List - { - "/MyCompanyName.MyProjectName.Blazor.Server/package.json", - "/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json", - "/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json" - }; - - var angularPackageJsonFilePaths = new List - { - "/angular/package.json" - }; - - var mvcUiPackageName = isProTemplate ? "@volo/abp.aspnetcore.mvc.ui.theme.leptonx" : "@abp/aspnetcore.mvc.ui.theme.leptonxlite"; - var blazorServerUiPackageName = isProTemplate ? "@volo/aspnetcore.components.server.leptonxtheme" : "@abp/aspnetcore.components.server.leptonxlitetheme"; - var ngUiPackageName = isProTemplate ? "@volosoft/abp.ng.theme.lepton-x" : "@abp/ng.theme.lepton-x"; foreach (var packageJsonFilePath in packageJsonFilePaths) { steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFilePath, mvcUiPackageName)); } - foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) + if (uiFramework == UiFramework.BlazorServer) { - steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName)); - steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, blazorServerUiPackageName)); + var blazorServerUiPackageName = isProTemplate ? "@volo/aspnetcore.components.server.leptonxtheme" : "@abp/aspnetcore.components.server.leptonxlitetheme"; + var blazorServerPackageJsonFilePaths = new List + { + "/MyCompanyName.MyProjectName.Blazor/package.json", + "/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json", + "/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json" + }; + + foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName)); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, blazorServerUiPackageName)); + } } - - foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) + else if (uiFramework == UiFramework.Angular) { - steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName)); - steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, "bootstrap-icons")); + var ngUiPackageName = isProTemplate ? "@volosoft/abp.ng.theme.lepton-x" : "@abp/ng.theme.lepton-x"; + var angularPackageJsonFilePaths = new List + { + "/angular/package.json" + }; + + foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName)); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, "bootstrap-icons")); + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs index 319326f3d4..54d234b5c3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs @@ -48,46 +48,50 @@ public abstract class MicroserviceTemplateBase : TemplateInfo } steps.Add(new ChangeThemeStep()); - RemoveLeptonXThemePackagesFromPackageJsonFiles(steps); + RemoveLeptonXThemePackagesFromPackageJsonFiles(steps, uiFramework: context.BuildArgs.UiFramework); } - private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps) + private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps, UiFramework uiFramework) { + var mvcUiPackageName = "@volo/abp.aspnetcore.mvc.ui.theme.leptonx"; var packageJsonFilePaths = new List { "/MyCompanyName.MyProjectName.AuthServer/package.json", "/MyCompanyName.MyProjectName.Web/package.json" }; - var blazorServerPackageJsonFilePaths = new List - { - "/MyCompanyName.MyProjectName.Blazor.Server/package.json" - }; - - var angularPackageJsonFilePaths = new List - { - "/angular/package.json" - }; - - var mvcUiPackageName = "@volo/abp.aspnetcore.mvc.ui.theme.leptonx"; - var blazorServerUiPackageName = "@volo/aspnetcore.components.server.leptonxtheme"; - var ngUiPackageName = "@volosoft/abp.ng.theme.lepton-x"; - foreach (var packageJsonFilePath in packageJsonFilePaths) { steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFilePath, mvcUiPackageName)); } - foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) + if (uiFramework == UiFramework.BlazorServer) { - steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName)); - steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, blazorServerUiPackageName)); + var blazorServerUiPackageName = "@volo/aspnetcore.components.server.leptonxtheme"; + var blazorServerPackageJsonFilePaths = new List + { + "/MyCompanyName.MyProjectName.Blazor/package.json" + }; + + foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName)); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, blazorServerUiPackageName)); + } } - - foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) + else if (uiFramework == UiFramework.Angular) { - steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName)); - steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, "bootstrap-icons")); + var ngUiPackageName = "@volosoft/abp.ng.theme.lepton-x"; + var angularPackageJsonFilePaths = new List + { + "/angular/package.json" + }; + + foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName)); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, "bootstrap-icons")); + } } }