From 16e6a8f984e17115ae690cb948ac5216aacf6fe7 Mon Sep 17 00:00:00 2001 From: Engincan VESKE Date: Mon, 20 Jun 2022 15:43:42 +0300 Subject: [PATCH] CLI: Add theme selection support for app and app-nolayers templates --- .../Volo/Abp/Cli/Commands/NewCommand.cs | 6 +- .../Commands/ProjectCreationCommandBase.cs | 40 +- .../Building/Steps/ChangeThemeStep.cs | 623 ++++++++++++++++++ .../Templates/App/AppNoLayersTemplateBase.cs | 2 +- .../Templates/App/AppTemplateBase.cs | 65 +- .../ProjectModification/ThemePackageAdder.cs | 58 ++ ...e.MyProjectName.Blazor.Server.Mongo.csproj | 3 + .../package.json | 4 +- ...anyName.MyProjectName.Blazor.Server.csproj | 3 + .../package.json | 4 +- ...ompanyName.MyProjectName.Host.Mongo.csproj | 2 +- .../MyProjectNameModule.cs | 8 +- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Host.csproj | 2 +- .../MyProjectNameModule.cs | 8 +- .../package.json | 2 +- ...CompanyName.MyProjectName.Mvc.Mongo.csproj | 3 + .../package.json | 2 +- .../MyCompanyName.MyProjectName.Mvc.csproj | 3 + .../package.json | 2 +- ...ompanyName.MyProjectName.AuthServer.csproj | 3 + .../package.json | 2 +- ....MyProjectName.Blazor.Server.Tiered.csproj | 3 + .../package.json | 4 +- ...anyName.MyProjectName.Blazor.Server.csproj | 3 + .../package.json | 4 +- .../MyCompanyName.MyProjectName.Blazor.csproj | 3 + ...e.MyProjectName.HttpApi.HostWithIds.csproj | 5 +- .../package.json | 2 +- ...yCompanyName.MyProjectName.Web.Host.csproj | 3 + .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web.csproj | 3 + .../package.json | 2 +- 33 files changed, 839 insertions(+), 42 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ThemePackageAdder.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index a48da7616b..6eb2784bb2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -33,8 +33,9 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien ICmdHelper cmdHelper, IInstallLibsService installLibsService, AngularPwaSupportAdder angularPwaSupportAdder, - InitialMigrationCreator ınitialMigrationCreator) - : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService, angularPwaSupportAdder, ınitialMigrationCreator) + InitialMigrationCreator initialMigrationCreator, + ThemePackageAdder themePackageAdder) + : base(connectionStringProvider, solutionPackageVersionFinder, cmdHelper, installLibsService, angularPwaSupportAdder, initialMigrationCreator, themePackageAdder) { TemplateProjectBuilder = templateProjectBuilder; TemplateInfoProvider = templateInfoProvider; @@ -79,6 +80,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'"); + ConfigureNpmPackagesForTheme(projectArgs); RunGraphBuildForMicroserviceServiceTemplate(projectArgs); await CreateInitialMigrationsAsync(projectArgs); await RunInstallLibsForWebTemplateAsync(projectArgs); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 75e090430c..aaa9f6e8a6 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -6,6 +6,7 @@ using ICSharpCode.SharpZipLib.Core; using ICSharpCode.SharpZipLib.Zip; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using NuGet.Versioning; using NUglify.Helpers; using Volo.Abp.Cli.ProjectModification; using Volo.Abp.Cli.Args; @@ -30,13 +31,16 @@ public abstract class ProjectCreationCommandBase public InitialMigrationCreator InitialMigrationCreator { get; } public ILogger Logger { get; set; } + public ThemePackageAdder ThemePackageAdder { get; set; } + public ProjectCreationCommandBase( ConnectionStringProvider connectionStringProvider, SolutionPackageVersionFinder solutionPackageVersionFinder, ICmdHelper cmdHelper, IInstallLibsService installLibsService, AngularPwaSupportAdder angularPwaSupportAdder, - InitialMigrationCreator initialMigrationCreator) + InitialMigrationCreator initialMigrationCreator, + ThemePackageAdder themePackageAdder) { ConnectionStringProvider = connectionStringProvider; SolutionPackageVersionFinder = solutionPackageVersionFinder; @@ -44,6 +48,7 @@ public abstract class ProjectCreationCommandBase InstallLibsService = installLibsService; AngularPwaSupportAdder = angularPwaSupportAdder; InitialMigrationCreator = initialMigrationCreator; + ThemePackageAdder = themePackageAdder; Logger = NullLogger.Instance; } @@ -481,6 +486,39 @@ public abstract class ProjectCreationCommandBase } } + protected void ConfigureNpmPackagesForTheme(ProjectBuildArgs projectArgs) + { + if (!projectArgs.Theme.HasValue) + { + return; + } + + switch (projectArgs.Theme) + { + case Theme.Basic: + ConfigureNpmPackagesForBasicTheme(projectArgs); + break; + } + } + + private void ConfigureNpmPackagesForBasicTheme(ProjectBuildArgs projectArgs) + { + if (projectArgs.UiFramework is UiFramework.Mvc or UiFramework.NotSpecified or UiFramework.BlazorServer) + { + ThemePackageAdder.AddNpmPackage(projectArgs.OutputFolder, "@abp/aspnetcore.mvc.ui.theme.basic", projectArgs.Version); + } + + if (projectArgs.UiFramework is UiFramework.BlazorServer) + { + ThemePackageAdder.AddNpmPackage(projectArgs.OutputFolder, "@abp/aspnetcore.components.server.basictheme", projectArgs.Version); + } + + if (projectArgs.UiFramework == UiFramework.Angular) + { + ThemePackageAdder.AddAngularPackage(projectArgs.OutputFolder, "@abp/ng.theme.basic", projectArgs.Version); + } + } + public static class Options { public static class Template 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 new file mode 100644 index 0000000000..d502388579 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs @@ -0,0 +1,623 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps; + +public class ChangeThemeStep : ProjectBuildPipelineStep +{ + public override void Execute(ProjectBuildContext context) + { + if (!context.BuildArgs.Theme.HasValue) + { + return; + } + + switch (context.BuildArgs.Theme) + { + case Theme.Basic: + ChangeToBasicTheme(context); + break; + } + } + + protected void ChangeToBasicTheme(ProjectBuildContext context) + { + #region MyCompanyName.MyProjectName.Web + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.HttpApi.HostWithIds + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName..HttpApi.HostWithIds.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Blazor + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj", + "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme", + "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme", + "AbpAspNetCoreComponentsWebAssemblyLeptonXLiteThemeModule", + "AbpAspNetCoreComponentsWebAssemblyBasicThemeModule" + ); + + ChangeNamespace( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite", + "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Blazor.Server + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme", + "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", + "AbpAspNetCoreComponentsServerBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "BlazorLeptonXLiteThemeBundles.Styles.Global", + "BlazorBasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml", + "Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite", + "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic", + "BlazorLeptonXLiteThemeBundles.Styles.Global", + "BlazorBasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/Pages/_Host.cshtml", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", + "BlazorLeptonXLiteThemeBundles.Scripts.Global", + "BlazorBasicThemeBundles.Scripts.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Blazor.Server.Tiered + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme", + "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", + "AbpAspNetCoreComponentsServerBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "BlazorLeptonXLiteThemeBundles.Styles.Global", + "BlazorBasicThemeBundles.Styles.Global" + ); + + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml", + "Volo.Abp.AspNetCore.Components.Web.LeptonXLiteTheme.Themes.LeptonXLite", + "Volo.Abp.AspNetCore.Components.Web.BasicTheme.Themes.Basic", + "BlazorLeptonXLiteThemeBundles.Styles.Global", + "BlazorBasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/Pages/_Host.cshtml", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", + "BlazorLeptonXLiteThemeBundles.Scripts.Global", + "BlazorBasicThemeBundles.Scripts.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.AuthServer + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Web.Mvc + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyCompanyName.MyProjectName.Web.Mvc.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyProjectNameWebModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc/MyProjectNameWebModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Web.Mvc.Mongo + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyCompanyName.MyProjectName.Web.Mvc.Mongo.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyProjectNameWebModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Mvc.Mongo/MyProjectNameWebModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Blazor.Server - (app-nolayers) + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme", + "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", + "AbpAspNetCoreComponentsServerBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "BlazorLeptonXLiteThemeBundles.Styles.Global", + "BlazorBasicThemeBundles.Styles.Global" + ); + + #endregion + + #region MyCompanyName.MyProjectName.Blazor.Server.Mongo + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj" + ); + + ReplacePackageReferenceWithProjectReference( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + @"..\..\..\..\..\modules\basic-theme\src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme", + "AbpAspNetCoreComponentsServerLeptonXLiteThemeModule", + "AbpAspNetCoreComponentsServerBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "AbpAspNetCoreMvcUiLeptonXLiteThemeModule", + "AbpAspNetCoreMvcUiBasicThemeModule" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Components.Server.LeptonXLiteTheme.Bundling", + "Volo.Abp.AspNetCore.Components.Server.BasicTheme.Bundling", + "LeptonXLiteThemeBundles.Styles.Global", + "BasicThemeBundles.Styles.Global" + ); + + ChangeNamespaceAndKeyword( + context, + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling", + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling", + "BlazorLeptonXLiteThemeBundles.Styles.Global", + "BlazorBasicThemeBundles.Styles.Global" + ); + + #endregion + + #region Angular + + ReplaceImportPackage( + context, + "/angular/src/app/app.module.ts", + "@abp/ng.theme.lepton-x", + "@abp/ng.theme.basic" + ); + + RemoveLinesByStatement( + context, + "/angular/src/app/app.module.ts", + "SideMenuLayoutModule" + ); + + ReplaceMethodNames( + context, + "/angular/src/app/app.module.ts", + "ThemeLeptonXModule", + "ThemeBasicModule" + ); + + #endregion + } + + protected void ReplacePackageReferenceWithProjectReference( + ProjectBuildContext context, + string targetProjectFilePath, + string packageReference, + string projectReference) + { + var file = context.FindFile(targetProjectFilePath); + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + var lineIndex = lines.FindIndex(line => line.Contains("PackageReference") && line.Contains(packageReference)); + if (lineIndex == -1) + { + return; + } + + lines[lineIndex] = lines[lineIndex].Replace(lines[lineIndex], $"\t"); + file.SetLines(lines); + } + + protected void ChangeNamespaceAndKeyword( + ProjectBuildContext context, + string targetModuleFilePath, + string oldNamespace, + string newNamespace, + string oldKeyword, + string newKeyword) + { + var file = context.FindFile(targetModuleFilePath); + + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + + for (var i = 0; i < lines.Length; i++) + { + if (lines[i].Contains($"using {oldNamespace};")) + { + lines[i] = $"using {newNamespace};"; + } + else if (lines[i].Contains(oldKeyword)) + { + lines[i] = lines[i].Replace(oldKeyword, newKeyword); + } + } + + file.SetLines(lines); + } + + protected void ChangeNamespace( + ProjectBuildContext context, + string targetModuleFilePath, + string oldNamespace, + string newNamespace) + { + var file = context.FindFile(targetModuleFilePath); + + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + for (var i = 0; i < lines.Length; i++) + { + if (lines[i].Contains($"using {oldNamespace};")) + { + lines[i] = $"using {newNamespace};"; + } + } + + file.SetLines(lines); + } + + protected void ReplaceImportPackage( + ProjectBuildContext context, + string filePath, + string oldImportPackage, + string newImportPackage) + { + var file = context.FindFile(filePath); + + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + var lines = file.GetLines(); + var lineIndex = lines.FindIndex(line => line.Contains($"from '{oldImportPackage}'")); + if (lineIndex == -1) + { + return; + } + + lines[lineIndex] = lines[lineIndex].Replace(oldImportPackage, newImportPackage); + file.SetLines(lines); + } + + protected void RemoveLinesByStatement( + ProjectBuildContext context, + string filePath, + string statement) + { + var file = context.FindFile(filePath); + + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + for (var i = 0; i < lines.Length; i++) + { + if (lines[i].Contains(statement)) + { + lines[i] = null; + } + } + + file.SetLines(lines.Where(x => x != null)); + } + + protected void ReplaceMethodNames( + ProjectBuildContext context, + string filePath, + string oldMethodName, + string newMethodName) + { + var file = context.FindFile(filePath); + + if (file == null) + { + return; + } + + file.NormalizeLineEndings(); + + var lines = file.GetLines(); + for (var i = 0; i < lines.Length; i++) + { + if (lines[i].Contains(oldMethodName)) + { + lines[i] = lines[i].Replace(oldMethodName, newMethodName); + } + } + + file.SetLines(lines); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs index 421c7fc119..0f249ceae7 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs @@ -87,7 +87,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase UpdateNuGetConfig(context, steps); ChangeConnectionString(context, steps); ConfigureDockerFiles(context, steps); - ConfigureTheme(context); + ConfigureTheme(context, steps); if (context.BuildArgs.UiFramework != UiFramework.Angular) { 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 205891d8da..75441af295 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 @@ -33,7 +33,7 @@ public abstract class AppTemplateBase : TemplateInfo RemoveMigrations(context, steps); ConfigureTieredArchitecture(context, steps); ConfigurePublicWebSite(context, steps); - ConfigureTheme(context); + ConfigureTheme(context, steps); RemoveUnnecessaryPorts(context, steps); RandomizeSslPorts(context, steps); RandomizeStringEncryption(context, steps); @@ -177,19 +177,62 @@ public abstract class AppTemplateBase : TemplateInfo } } - protected void ConfigureTheme(ProjectBuildContext context) + protected void ConfigureTheme(ProjectBuildContext context, List steps) { - if (context.BuildArgs.Theme.HasValue) + if (!context.BuildArgs.Theme.HasValue) { - if (context.BuildArgs.Theme == Theme.LeptonXLite) - { - context.Symbols.Add("LEPTONX-LITE"); - } + return; + } + + if (context.BuildArgs.Theme != Theme.LeptonXLite) + { + steps.Add(new ChangeThemeStep()); + RemoveLeptonXThemePackagesFromPackageJsonFiles(steps); + } + } - if (context.BuildArgs.Theme == Theme.Basic) - { - context.Symbols.Add("BASIC"); - } + private void RemoveLeptonXThemePackagesFromPackageJsonFiles(List steps) + { + var packageJsonFilePaths = new List() + { + "/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json", + "/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json", + "/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json", + "/aspnet-core/MyCompanyName.MyProjectName.Host/package.json", + "/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json", + }; + + var blazorServerPackageJsonFilePaths = new List() + { + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json", + "/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json", + "/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json", + "/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json" + }; + + var angularPackageJsonFilePaths = new List() + { + "/angular/package.json" + }; + + foreach (var packageJsonFilePath in packageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(packageJsonFilePath, "@abp/aspnetcore.mvc.ui.theme.leptonxlite")); + } + + foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, "@abp/aspnetcore.mvc.ui.theme.leptonxlite")); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, "@abp/aspnetcore.components.server.leptonxlitetheme")); + } + + foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) + { + steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, "@abp/ng.theme.lepton-x")); + steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, "bootstrap-icons")); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ThemePackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ThemePackageAdder.cs new file mode 100644 index 0000000000..558004b147 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ThemePackageAdder.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using NuGet.Versioning; +using Volo.Abp.Cli.Utils; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Cli.ProjectModification; + +public class ThemePackageAdder : ITransientDependency +{ + protected ICmdHelper CmdHelper { get; } + protected PackageJsonFileFinder PackageJsonFileFinder { get; } + + public ThemePackageAdder(ICmdHelper cmdHelper, PackageJsonFileFinder packageJsonFileFinder) + { + CmdHelper = cmdHelper; + PackageJsonFileFinder = packageJsonFileFinder; + } + + public void AddNpmPackage(string rootDirectory, string package, string version) + { + var packageJsonFilePaths = PackageJsonFileFinder.Find(rootDirectory); + + AddPackage(packageJsonFilePaths, package, version); + } + + public void AddAngularPackage(string rootDirectory, string package, string version) + { + var angularPackageJsonFilePaths = PackageJsonFileFinder.Find(rootDirectory).Where(x => File.Exists(x.RemovePostFix("package.json") + "angular.json")).ToList(); + + AddPackage(angularPackageJsonFilePaths, package, version); + } + + private void AddPackage(List packageJsonFilePaths, string package, string version) + { + if (!packageJsonFilePaths.Any() || string.IsNullOrWhiteSpace(package)) + { + return; + } + + var installCommand = IsYarnAvailable() ? "yarn add " : "npm install "; + var packageVersion = !string.IsNullOrWhiteSpace(version) ? $" --version {version}" : string.Empty; + + foreach (var packageJsonFilePath in packageJsonFilePaths) + { + var directory = Path.GetDirectoryName(packageJsonFilePath).EnsureEndsWith(Path.DirectorySeparatorChar); + CmdHelper.RunCmd(installCommand + package + packageVersion, workingDirectory: directory); + } + } + + private bool IsYarnAvailable() + { + var output = CmdHelper.RunCmdAndGetOutput("yarn -v").Trim(); + return SemanticVersion.TryParse(output, out _); + } +} \ No newline at end of file diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj index 78ed324a23..41ca3c0a32 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj @@ -11,6 +11,9 @@ + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json index 647a34ed6d..21d924ec29 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "^1.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index d31420a423..f132ca1ca3 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -11,6 +11,9 @@ + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json index 647a34ed6d..21d924ec29 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "^1.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj index 0f7b4bb850..2fa6956c31 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj @@ -64,7 +64,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs index 791e06e044..f961dd9172 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs @@ -11,8 +11,8 @@ using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.AuditLogging.MongoDB; @@ -51,7 +51,7 @@ namespace MyCompanyName.MyProjectName; typeof(AbpAspNetCoreMultiTenancyModule), typeof(AbpAutofacModule), typeof(AbpAutoMapperModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule), + typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule), typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreSerilogModule), @@ -144,7 +144,7 @@ public class MyProjectNameModule : AbpModule Configure(options => { options.StyleBundles.Configure( - BasicThemeBundles.Styles.Global, + LeptonXLiteThemeBundles.Styles.Global, bundle => { bundle.AddFiles("/global-styles.css"); } ); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json index cc93b1db85..2ed9d9973a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~1.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj index 6f37c0395b..86b9f762ec 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj @@ -65,7 +65,7 @@ - + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs index f92833f373..4b5d0f97b6 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs @@ -11,8 +11,8 @@ using Volo.Abp.AspNetCore.MultiTenancy; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.AuditLogging.EntityFrameworkCore; @@ -53,7 +53,7 @@ namespace MyCompanyName.MyProjectName; typeof(AbpAutofacModule), typeof(AbpAutoMapperModule), typeof(AbpEntityFrameworkCoreSqlServerModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule), + typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule), typeof(AbpSwashbuckleModule), typeof(AbpAspNetCoreSerilogModule), @@ -146,7 +146,7 @@ public class MyProjectNameModule : AbpModule Configure(options => { options.StyleBundles.Configure( - BasicThemeBundles.Styles.Global, + LeptonXLiteThemeBundles.Styles.Global, bundle => { bundle.AddFiles("/global-styles.css"); } ); }); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json index cc93b1db85..2ed9d9973a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~1.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj index a0df0cb4f4..7593435403 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj @@ -9,6 +9,9 @@ + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json index fc1c0bb18f..2ed9d9973a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~1.0.0" } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj index c722be51ea..1bf1cf825a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj @@ -9,6 +9,9 @@ + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json index fc1c0bb18f..2ed9d9973a 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~1.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index 1e851ca7e7..9d012f8de6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -34,6 +34,9 @@ + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json index fc02cc69e3..d356b498f3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-authserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj index 6cdbe71a1d..a007569a70 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyCompanyName.MyProjectName.Blazor.Server.Tiered.csproj @@ -18,6 +18,9 @@ + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json index 647a34ed6d..21d924ec29 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "^1.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 34148983e3..b4e11ed8fc 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -17,6 +17,9 @@ + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json index 647a34ed6d..21d924ec29 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0", - "@abp/aspnetcore.components.server.basictheme": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0", + "@abp/aspnetcore.components.server.leptonxlitetheme": "^1.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index 6e7df9f7aa..9715a1ebbd 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -15,6 +15,9 @@ + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index bf35c4141b..f9cc06ec6d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -12,13 +12,16 @@ - + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json index cc93b1db85..e45389c245 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index 757ae14fc3..15452637ad 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -18,6 +18,9 @@ + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json index cc93b1db85..e45389c245 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 62adf04842..7f1a62a473 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -33,6 +33,9 @@ + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json index cc93b1db85..e45389c245 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.3.0" + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "^1.0.0" } }