From 5caf95080cb0ea6b85988adfc8aa5d5fbb49318c Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Thu, 1 Aug 2024 09:01:46 +0300 Subject: [PATCH 01/19] Update en-GB.json --- .../AbpIoLocalization/Admin/Localization/Resources/en-GB.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json index 2429f52eef..1a9f633fce 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json @@ -102,6 +102,8 @@ "DoYouWantToCreateNewUser": "Do you want to create new user?", "MasterModules": "Master Modules", "OrganizationName": "Organisation name", + "DownloadType": "Download Type", + "AcceptNewsLetter": "Accept Newsletter", "CreationDate": "Creation date", "LicenseStartDate": "License start date", "LicenseEndDate": "License end date", From 71d9a6ada5d0bca0bd4c71cea96cede69624cfbc Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Thu, 1 Aug 2024 09:05:38 +0300 Subject: [PATCH 02/19] Update en-GB.json --- .../AbpIoLocalization/Admin/Localization/Resources/en-GB.json | 1 + 1 file changed, 1 insertion(+) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json index 1a9f633fce..43386f16be 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json @@ -103,6 +103,7 @@ "MasterModules": "Master Modules", "OrganizationName": "Organisation name", "DownloadType": "Download Type", + "UserDownloads": "User Downloads", "AcceptNewsLetter": "Accept Newsletter", "CreationDate": "Creation date", "LicenseStartDate": "License start date", From f99c489ec8286854e9135a345eb861f3568687d6 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 13 Aug 2024 11:05:18 +0800 Subject: [PATCH 03/19] Check if response has started before setting header and status code. Resolve #20483 --- .../Mvc/ExceptionHandling/AbpExceptionFilter.cs | 16 ++++++++++++---- .../ExceptionHandling/AbpExceptionPageFilter.cs | 15 +++++++++++---- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs index d2abae0902..3b60e74d78 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs @@ -75,10 +75,18 @@ public class AbpExceptionFilter : IAsyncExceptionFilter, IAbpFilter, ITransientD } else { - context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); - context.HttpContext.Response.StatusCode = (int)context - .GetRequiredService() - .GetStatusCode(context.HttpContext, context.Exception); + if (!context.HttpContext.Response.HasStarted) + { + context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.StatusCode = (int)context + .GetRequiredService() + .GetStatusCode(context.HttpContext, context.Exception); + } + else + { + var logger = context.GetService>(NullLogger.Instance)!; + logger.LogWarning("HTTP response has already started, cannot set headers and status code!"); + } context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs index f404f52e5d..56814718b6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs @@ -103,10 +103,17 @@ public class AbpExceptionPageFilter : IAsyncPageFilter, IAbpFilter, ITransientDe } else { - context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); - context.HttpContext.Response.StatusCode = (int)context - .GetRequiredService() - .GetStatusCode(context.HttpContext, context.Exception!); + if (!context.HttpContext.Response.HasStarted) + { + context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.StatusCode = (int)context + .GetRequiredService() + .GetStatusCode(context.HttpContext, context.Exception!); + } + else + { + logger.LogWarning("HTTP response has already started, cannot set headers and status code!"); + } context.Result = new ObjectResult(new RemoteServiceErrorResponse(remoteServiceErrorInfo)); } From 1bd3fcaf33d08126f8e02990d88e86d12f963282 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Tue, 13 Aug 2024 13:48:48 +0300 Subject: [PATCH 04/19] Updated json --- .../AbpIoLocalization/Admin/Localization/Resources/en-GB.json | 2 +- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json index 43386f16be..505854685e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json @@ -104,7 +104,7 @@ "OrganizationName": "Organisation name", "DownloadType": "Download Type", "UserDownloads": "User Downloads", - "AcceptNewsLetter": "Accept Newsletter", + "AcceptNewsletter": "Accept Newsletter", "CreationDate": "Creation date", "LicenseStartDate": "License start date", "LicenseEndDate": "License end date", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 34eaa62e85..c2e0ccf136 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -120,6 +120,9 @@ "PurchaseOrderNo": "Purchase order no", "QuotationDate": "Quotation date", "CompanyName": "Company name", + "DownloadType": "Download Type", + "UserDownloads": "User Downloads", + "AcceptNewsletter": "Accept Newsletter", "CompanyAddress": "Company address", "Price": "Price", "DiscountText": "Discount text", From e80debd7ce2a8aa89bb3fdf57510534ba3e1b19e Mon Sep 17 00:00:00 2001 From: Volosoft Agent <43883821+voloagent@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:02:38 +0300 Subject: [PATCH 05/19] Update latest-versions.json to version 8.2.2 --- latest-versions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/latest-versions.json b/latest-versions.json index 4649df25e4..8e0b7be03d 100644 --- a/latest-versions.json +++ b/latest-versions.json @@ -1,6 +1,6 @@ [ { - "version": "8.2.1", + "version": "8.2.2", "releaseDate": "", "type": "stable", "message": "" From febc1297263eda3c9b8fd68b797362a3980581d1 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 15 Aug 2024 18:25:56 +0800 Subject: [PATCH 06/19] Show H1 tag value for page titles --- .../Pages/Documents/Project/Index.cshtml.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index c80b81bf71..3458015560 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -197,7 +197,6 @@ namespace Volo.Docs.Pages.Documents.Project await SetNavigationAsync(); SetLanguageSelectListItems(); - SetDocumentPageTitle(); return Page(); } @@ -472,7 +471,12 @@ namespace Volo.Docs.Pages.Documents.Project private void SetDocumentPageTitle() { - DocumentPageTitle = Navigation.FindNavigation(DocumentNameWithExtension)?.Text ?? DocumentName?.Replace("-", " "); + DocumentPageTitle = DocumentName?.Replace("-", " "); + var match = Regex.Match(Document.Content, @"#(?.+)"); + if (match.Success && match.Groups.TryGetValue("PageTitle", out var group)) + { + DocumentPageTitle = Regex.Replace(group.Value, "<.*?>", string.Empty); + } } public string CreateVersionLink(VersionInfoViewModel latestVersion, string version, string documentName = null) @@ -508,6 +512,7 @@ namespace Volo.Docs.Pages.Documents.Project Document = await GetSpecificDocumentOrDefaultAsync(language); DocumentLanguageCode = language; DocumentNameWithExtension = Document.Name; + SetDocumentPageTitle(); await ConvertDocumentContentToHtmlAsync(); return true; } From 478e102777934f94b4647a886381690ce818708c Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 15 Aug 2024 18:53:22 +0800 Subject: [PATCH 07/19] Update Index.cshtml.cs --- .../src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index 3458015560..a5fcd7ea0e 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -475,7 +475,7 @@ namespace Volo.Docs.Pages.Documents.Project var match = Regex.Match(Document.Content, @"#(?.+)"); if (match.Success && match.Groups.TryGetValue("PageTitle", out var group)) { - DocumentPageTitle = Regex.Replace(group.Value, "<.*?>", string.Empty); + DocumentPageTitle = Regex.Replace(group.Value, "<.*?>", string.Empty).Trim(); } } From 24df181ccf9acb8386ab0e4f3b3d0f6e40c1879e Mon Sep 17 00:00:00 2001 From: sumeyyeKurtulus Date: Thu, 15 Aug 2024 15:26:45 +0300 Subject: [PATCH 08/19] update: the Node, Yarn and Npm versions for Angular v18 upgrade --- docs/en/framework/ui/angular/quick-start.md | 4 ++-- docs/en/get-started/layered-web-application.md | 4 ++-- docs/en/get-started/single-layer-web-application.md | 4 ++-- docs/en/release-info/migration-guides/abp-8-3.md | 4 ++++ docs/en/studio/installation.md | 2 +- docs/en/tutorials/todo/layered/index.md | 2 +- docs/en/tutorials/todo/single-layer/index.md | 2 +- 7 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docs/en/framework/ui/angular/quick-start.md b/docs/en/framework/ui/angular/quick-start.md index 2a8986f965..df2d6331b9 100644 --- a/docs/en/framework/ui/angular/quick-start.md +++ b/docs/en/framework/ui/angular/quick-start.md @@ -4,8 +4,8 @@ Please follow the steps below to prepare your development environment for Angular. -1. **Install Node.js:** Please visit [Node.js downloads page](https://nodejs.org/en/download/) and download proper Node.js v16 or v18 installer for your OS. An alternative is to install [NVM](https://github.com/nvm-sh/nvm) and use it to have multiple versions of Node.js in your operating system. -2. **[Optional] Install Yarn:** You may install Yarn v1 (not v2) following the instructions on [the installation page](https://classic.yarnpkg.com/en/docs/install). Yarn v1 delivers an arguably better developer experience compared to npm v6 and below. You may skip this step and work with npm, which is built-in in Node.js, instead. +1. **Install Node.js:** Please visit [Node.js downloads page](https://nodejs.org/en/download/) and download proper Node.js `v18.19+` installer for your OS. An alternative is to install [NVM](https://github.com/nvm-sh/nvm) and use it to have multiple versions of Node.js in your operating system. +2. **[Optional] Install Yarn:** You may install Yarn v1.22+ (not v2) following the instructions on [the installation page](https://classic.yarnpkg.com/en/docs/install). Yarn v1 delivers an arguably better developer experience compared to npm v10 and below. You may skip this step and work with npm, which is built-in in Node.js, instead. 3. **[Optional] Install VS Code:** [VS Code](https://code.visualstudio.com/) is a free, open-source IDE which works seamlessly with TypeScript. Although you can use any IDE including Visual Studio or Rider, VS Code will most likely deliver the best developer experience when it comes to Angular projects. ABP project templates even contain plugin recommendations for VS Code users, which VS Code will ask you to install when you open the Angular project folder. Here is a list of recommended extensions: - [Angular Language Service](https://marketplace.visualstudio.com/items?itemName=angular.ng-template) - [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) diff --git a/docs/en/get-started/layered-web-application.md b/docs/en/get-started/layered-web-application.md index ee26397797..804b2df787 100644 --- a/docs/en/get-started/layered-web-application.md +++ b/docs/en/get-started/layered-web-application.md @@ -22,8 +22,8 @@ The following tools should be installed on your development machine: * [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). [1](#f-editor) * [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet) {{ if UI != "Blazor" }} -* [Node v16 or v18](https://nodejs.org/) -* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v6+ (already installed with Node) +* [Node v18.19+](https://nodejs.org/) +* [Yarn v1.22+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v10+ (already installed with Node) {{ end }} {{ if Tiered == "Yes" }} * [Redis](https://redis.io/) (as the [distributed cache](Caching.md)). diff --git a/docs/en/get-started/single-layer-web-application.md b/docs/en/get-started/single-layer-web-application.md index 9708c513cb..201d0fb2df 100644 --- a/docs/en/get-started/single-layer-web-application.md +++ b/docs/en/get-started/single-layer-web-application.md @@ -21,8 +21,8 @@ The following tools should be installed on your development machine: * [Visual Studio 2022](https://visualstudio.microsoft.com/vs/) (v17.3+) for Windows / [Visual Studio for Mac](https://visualstudio.microsoft.com/vs/mac/). [1](#f-editor) * [.NET 8.0+](https://dotnet.microsoft.com/en-us/download/dotnet) {{ if UI != "Blazor" }} -* [Node v16 or v18](https://nodejs.org/) -* [Yarn v1.20+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v6+ (already installed with Node) +* [Node v18.19+](https://nodejs.org/) +* [Yarn v1.22+ (not v2)](https://classic.yarnpkg.com/en/docs/install) [2](#f-yarn) or npm v10+ (already installed with Node) {{ end }} {{ if Tiered == "Yes" }} * [Redis](https://redis.io/) (as the [distributed cache](Caching.md)). diff --git a/docs/en/release-info/migration-guides/abp-8-3.md b/docs/en/release-info/migration-guides/abp-8-3.md index bc726e68d8..50a7f274a4 100644 --- a/docs/en/release-info/migration-guides/abp-8-3.md +++ b/docs/en/release-info/migration-guides/abp-8-3.md @@ -49,6 +49,10 @@ However, notice this package is used by the `@abp/aspnetcore.mvc.ui.theme.shared See the PR for more info: https://github.com/abpframework/abp/pull/19340 +### Angular UI + +We wish to formally inform you that ABP version 8.3 has been upgraded to incorporate Angular version 18. Consequently, we recommend migrating your application to [Angular v18](https://angular.dev/update-guide) to ensure compatibility. + ## PRO > Please check the **Open-Source (Framework)** section before reading this section. The listed topics might affect your application and you might need to take care of them. diff --git a/docs/en/studio/installation.md b/docs/en/studio/installation.md index 11f390f9f3..4dc158e464 100644 --- a/docs/en/studio/installation.md +++ b/docs/en/studio/installation.md @@ -8,7 +8,7 @@ Before you begin the installation process for ABP Studio, ensure that your system meets the following pre-requirements: ### Node -Make sure [Node.js](https://nodejs.org/en) is installed on your system. If you have not installed Node.js, you can download the `v16` or `v18` version from the official [Node.js website](https://nodejs.org/en/download/prebuilt-installer). +Make sure [Node.js](https://nodejs.org/en) is installed on your system. If you have not installed Node.js, you can download the `v18.19+` version from the official [Node.js website](https://nodejs.org/en/download/prebuilt-installer). ### WireGuard (Optional) ABP Studio needs [WireGuard](https://www.wireguard.com/) for Kubernetes operations. You can find the installation instructions for your specific operating system below: diff --git a/docs/en/tutorials/todo/layered/index.md b/docs/en/tutorials/todo/layered/index.md index db25c826f1..6761bb68bb 100644 --- a/docs/en/tutorials/todo/layered/index.md +++ b/docs/en/tutorials/todo/layered/index.md @@ -53,7 +53,7 @@ This documentation has a video tutorial on **YouTube**!! You can watch it here: ## Pre-Requirements * An IDE (e.g. [Visual Studio](https://visualstudio.microsoft.com/vs/)) that supports [.NET 8.0+](https://dotnet.microsoft.com/download/dotnet) development. -* [Node v16.x](https://nodejs.org/) +* [Node v18.19+](https://nodejs.org/) {{if DB=="Mongo"}} diff --git a/docs/en/tutorials/todo/single-layer/index.md b/docs/en/tutorials/todo/single-layer/index.md index 9afbbd8833..3b4f755c70 100644 --- a/docs/en/tutorials/todo/single-layer/index.md +++ b/docs/en/tutorials/todo/single-layer/index.md @@ -49,7 +49,7 @@ This documentation has a video tutorial on **YouTube**!! You can watch it here: ## Pre-Requirements * An IDE (e.g. [Visual Studio](https://visualstudio.microsoft.com/vs/)) that supports [.NET 8.0+](https://dotnet.microsoft.com/download/dotnet) development. -* [Node v16.x](https://nodejs.org/) +* [Node v18.19+](https://nodejs.org/) {{if DB=="Mongo"}} From ab75456eff0dd1e7634d4ab6a85befeeafc51630 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 20 Aug 2024 14:36:41 +0800 Subject: [PATCH 09/19] Show an error page if libs folder is empty. Resolve #20559 --- .../AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 2 + .../AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs | 11 +++ .../AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 73 +++++++++++++++++++ .../AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs | 6 ++ 4 files changed, 92 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 7b68fca32d..133b840543 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -32,6 +32,7 @@ using Volo.Abp.AspNetCore.Mvc.DataAnnotations; using Volo.Abp.AspNetCore.Mvc.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Infrastructure; using Volo.Abp.AspNetCore.Mvc.Json; +using Volo.Abp.AspNetCore.Mvc.Libs; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.VirtualFileSystem; using Volo.Abp.DependencyInjection; @@ -231,6 +232,7 @@ public class AbpAspNetCoreMvcModule : AbpModule public override void OnApplicationInitialization(ApplicationInitializationContext context) { AddApplicationParts(context); + context.ServiceProvider.GetRequiredService().CheckLibs(context); } private static void AddApplicationParts(ApplicationInitializationContext context) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs new file mode 100644 index 0000000000..4daf23204b --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs @@ -0,0 +1,11 @@ +namespace Volo.Abp.AspNetCore.Mvc.Libs; + +public class AbpMvcLibsOptions +{ + public bool CheckLibs { get; set; } + + public AbpMvcLibsOptions() + { + CheckLibs = true; + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs new file mode 100644 index 0000000000..0650cded0a --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -0,0 +1,73 @@ +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Options; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Mvc.Libs; + +public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency +{ + private Task? _checkLibsTask; + + public virtual void CheckLibs(ApplicationInitializationContext context) + { + var options = context.ServiceProvider.GetRequiredService>().Value; + if (options.CheckLibs) + { + var app = context.GetApplicationBuilder(); + app.Use(async (httpContext, next) => + { + if (!await HandleCheckLibsAsyncOnceAsync(httpContext)) + { + httpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; + httpContext.Response.ContentType = "text/html"; + await httpContext.Response.WriteAsync( + "" + + " " + + " ABP MVC Libs Error" + + " " + + " " + + "

ABP MVC Libs folder is not found!

" + + "

Please make sure you have run the abp install-libs command.

" + + "

For more information, see CLI install-libs document.

" + + " " + + "", + Encoding.UTF8 + ); + return; + } + + await next(httpContext); + }); + } + } + + protected virtual Task HandleCheckLibsAsyncOnceAsync(HttpContext httpContext) + { + if (_checkLibsTask == null) + { + _checkLibsTask = HandleCheckLibsAsync(httpContext); + } + + return _checkLibsTask; + } + + protected virtual Task HandleCheckLibsAsync(HttpContext httpContext) + { + var fileProvider = httpContext.RequestServices.GetRequiredService().WebRootFileProvider; + var abpFiles = new IFileInfo[] + { + fileProvider.GetFileInfo("/libs/abp/core/abp.js"), + fileProvider.GetFileInfo("/libs/abp/core/abp.css") + }; + + return Task.FromResult(abpFiles.All(abpFile => abpFile.Exists)); + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs new file mode 100644 index 0000000000..98a88184e8 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/IAbpMvcLibsService.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.AspNetCore.Mvc.Libs; + +public interface IAbpMvcLibsService +{ + void CheckLibs(ApplicationInitializationContext context); +} From faec129c59410894de37bde0e351294b673cf437 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 20 Aug 2024 15:19:15 +0800 Subject: [PATCH 10/19] Only enable the `CheckLibs` if project is depends on `AbpAspNetCoreMvcUiBundlingModule`. --- .../AbpAspNetCoreMvcUiBundlingModule.cs | 11 ++++++++-- .../AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs | 5 ----- .../AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 21 +++++++++++-------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs index bdd4cb2a27..4e020bfcf8 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpAspNetCoreMvcUiBundlingModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.Libs; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.Minify; using Volo.Abp.Modularity; @@ -11,5 +12,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling; )] public class AbpAspNetCoreMvcUiBundlingModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.CheckLibs = true; + }); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs index 4daf23204b..d166528a05 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsOptions.cs @@ -3,9 +3,4 @@ namespace Volo.Abp.AspNetCore.Mvc.Libs; public class AbpMvcLibsOptions { public bool CheckLibs { get; set; } - - public AbpMvcLibsOptions() - { - CheckLibs = true; - } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs index 0650cded0a..4cb9952158 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -5,9 +5,11 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.FileProviders; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Microsoft.Extensions.FileProviders; using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Mvc.Libs; @@ -34,7 +36,7 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency " ABP MVC Libs Error" + " " + " " + - "

ABP MVC Libs folder is not found!

" + + "

ABP MVC Libs folder(wwwroot/libs) does not exist or empty!

" + "

Please make sure you have run the abp install-libs command.

" + "

For more information, see CLI install-libs document.

" + " " + @@ -61,13 +63,14 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency protected virtual Task HandleCheckLibsAsync(HttpContext httpContext) { - var fileProvider = httpContext.RequestServices.GetRequiredService().WebRootFileProvider; - var abpFiles = new IFileInfo[] + var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService().WebRootPath); + var libsFolder = fileProvider.GetDirectoryContents("/libs"); + if (!libsFolder.Exists || !libsFolder.Any()) { - fileProvider.GetFileInfo("/libs/abp/core/abp.js"), - fileProvider.GetFileInfo("/libs/abp/core/abp.css") - }; - - return Task.FromResult(abpFiles.All(abpFile => abpFile.Exists)); + var logger = httpContext.RequestServices.GetRequiredService>(); + logger.LogError("The 'wwwroot/libs' folder does not exist or empty!"); + return Task.FromResult(false); + } + return Task.FromResult(true); } } From ff752c3af371ab45569213f05bc6d27316feb010 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 20 Aug 2024 11:23:25 +0300 Subject: [PATCH 11/19] update abp upgrade command in cli doc --- docs/en/cli/index.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index c283121ce5..bb1a6ec4f6 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -794,12 +794,19 @@ Examples: ````bash abp upgrade -t app +abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro +abp upgrade -t app-nolayers --audit-logging-ui abp upgrade -t app-nolayers -p D:\MyProjects\MyProject ```` #### Options * `--path` or `-p`: Specifies the module path. The module should be in that directory. If not specified, the default is the current directory. +* `--gdpr`: Installs GDPR module too. +* `--language-management`: Installs Language Management module too. +* `--audit-logging-ui`: Installs Audit Logging Pro (UI) module too. +* `--text-template-management`: Installs Text Template Management module too. +* `--openiddict-pro`: Installs OpenIddict Pro (UI) module too. ### translate From 0651ca6f441f7534809ba3f2c97820173aa83423 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 20 Aug 2024 11:26:49 +0300 Subject: [PATCH 12/19] Update migration from open source doc --- docs/en/guides/migrating-from-open-source.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/docs/en/guides/migrating-from-open-source.md b/docs/en/guides/migrating-from-open-source.md index f73b7afc8d..5340e4212a 100644 --- a/docs/en/guides/migrating-from-open-source.md +++ b/docs/en/guides/migrating-from-open-source.md @@ -9,12 +9,14 @@ ABP Studio provides a way for users, who already started the development before * Alternatively, you can use the following ABP Studio CLI command to achieve the same functionality: ```bash - abp upgrade [-t ] + abp upgrade [-t ] [options] Examples: abp upgrade -t app - abp upgrade -t app-nolayers + abp upgrade -t app --language-management --gdpr --audit-logging-ui --text-template-management --openiddict-pro + abp upgrade -t app-nolayers --audit-logging-ui + abp upgrade -t app-nolayers -p D:\MyProjects\MyProject ``` ## Changes in the solution @@ -31,15 +33,14 @@ This command will remove the following modules from your solution: And install the following modules to your solution: - Volo.Abp.Account.Pro -- Volo.Abp.AuditLogging.Pro - Volo.Abp.Identity.Pro -- Volo.Abp.OpenIddict.Pro -- Volo.Saas -- Volo.Abp.LanguageManagement -- Volo.Abp.TextTemplateManagement -- Volo.FileManagement -- Volo.Abp.Gdpr - Volo.Abp.LeptonXTheme +- Volo.Saas +- Volo.Abp.OpenIddict.Pro (*Optional*) +- Volo.Abp.AuditLogging.Pro (*Optional*) +- Volo.Abp.LanguageManagement (*Optional*) +- Volo.Abp.TextTemplateManagement (*Optional*) +- Volo.Abp.Gdpr (*Optional*) ### Other changes From e825b03cdbd0e6f9995770dd06f7e4622f147413 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 20 Aug 2024 16:28:30 +0800 Subject: [PATCH 13/19] Disable `CheckLibs` in unit test. --- .../Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 9 +++++---- .../Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs index 4cb9952158..5d8fdf4cb3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -1,3 +1,4 @@ +using System.IO; using System.Linq; using System.Net; using System.Text; @@ -26,7 +27,7 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency var app = context.GetApplicationBuilder(); app.Use(async (httpContext, next) => { - if (!await HandleCheckLibsAsyncOnceAsync(httpContext)) + if (!await CheckLibsAsyncOnceAsync(httpContext)) { httpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; httpContext.Response.ContentType = "text/html"; @@ -51,17 +52,17 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency } } - protected virtual Task HandleCheckLibsAsyncOnceAsync(HttpContext httpContext) + protected virtual Task CheckLibsAsyncOnceAsync(HttpContext httpContext) { if (_checkLibsTask == null) { - _checkLibsTask = HandleCheckLibsAsync(httpContext); + _checkLibsTask = CheckLibsAsync(httpContext); } return _checkLibsTask; } - protected virtual Task HandleCheckLibsAsync(HttpContext httpContext) + protected virtual Task CheckLibsAsync(HttpContext httpContext) { var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService().WebRootPath); var libsFolder = fileProvider.GetDirectoryContents("/libs"); diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs index 027403d226..0e13746d66 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations; using Volo.Abp.AspNetCore.Mvc.GlobalFeatures; +using Volo.Abp.AspNetCore.Mvc.Libs; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.Localization.Resource; using Volo.Abp.AspNetCore.Security.Claims; @@ -140,6 +141,11 @@ public class AbpAspNetCoreMvcTestModule : AbpModule }); context.Services.TransformAbpClaims(); + + Configure(options => + { + options.CheckLibs = false; + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) From 762d54176f18e739c329b1b786bb035f6cb79c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alper=20Ebi=C3=A7o=C4=9Flu?= <9526587+ebicoglu@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:19:25 +0300 Subject: [PATCH 14/19] update error message --- .../Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs index 5d8fdf4cb3..532ac18239 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -34,12 +34,13 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency await httpContext.Response.WriteAsync( "" + " " + - " ABP MVC Libs Error" + + " Error — The Libs folder is missing!" + " " + " " + - "

ABP MVC Libs folder(wwwroot/libs) does not exist or empty!

" + - "

Please make sure you have run the abp install-libs command.

" + - "

For more information, see CLI install-libs document.

" + + "

⚠️ The Libs folder under the wwwroot/libs directory is empty!

" + + "

The Libs folder contains mandatory NPM Packages for running the project.

" + + "

Make sure you run the abp install-libs CLI tool command.

" + + "

For more information, check out the ABP CLI documentation

" + " " + "", Encoding.UTF8 From 8467434c87f2787443bc10596200ec3dcf3308c6 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 20 Aug 2024 17:44:04 +0800 Subject: [PATCH 15/19] Catch the exception and log it to prevent crashing the application. --- .../AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs | 7 +++++- .../AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 24 +++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index 133b840543..379523b659 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -232,7 +232,7 @@ public class AbpAspNetCoreMvcModule : AbpModule public override void OnApplicationInitialization(ApplicationInitializationContext context) { AddApplicationParts(context); - context.ServiceProvider.GetRequiredService().CheckLibs(context); + CheckLibs(context); } private static void AddApplicationParts(ApplicationInitializationContext context) @@ -279,4 +279,9 @@ public class AbpAspNetCoreMvcModule : AbpModule partManager.ApplicationParts.AddIfNotContains(moduleAssembly); } } + + private static void CheckLibs(ApplicationInitializationContext context) + { + context.ServiceProvider.GetRequiredService().CheckLibs(context); + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs index 532ac18239..5563667438 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Linq; using System.Net; @@ -40,7 +41,7 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency "

⚠️ The Libs folder under the wwwroot/libs directory is empty!

" + "

The Libs folder contains mandatory NPM Packages for running the project.

" + "

Make sure you run the abp install-libs CLI tool command.

" + - "

For more information, check out the ABP CLI documentation

" + + "

For more information, check out the ABP CLI documentation

" + " " + "", Encoding.UTF8 @@ -65,14 +66,23 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency protected virtual Task CheckLibsAsync(HttpContext httpContext) { - var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService().WebRootPath); - var libsFolder = fileProvider.GetDirectoryContents("/libs"); - if (!libsFolder.Exists || !libsFolder.Any()) + var logger = httpContext.RequestServices.GetRequiredService>(); + try { - var logger = httpContext.RequestServices.GetRequiredService>(); - logger.LogError("The 'wwwroot/libs' folder does not exist or empty!"); - return Task.FromResult(false); + var fileProvider = new PhysicalFileProvider(httpContext.RequestServices.GetRequiredService().WebRootPath); + var libsFolder = fileProvider.GetDirectoryContents("/libs"); + if (!libsFolder.Exists || !libsFolder.Any()) + { + logger.LogError("The 'wwwroot/libs' folder does not exist or empty!"); + return Task.FromResult(false); + } + } + catch (Exception e) + { + // In case of any exception, log it and return true to prevent crashing the application. + logger.LogError(e, "An error occurred while checking the libs folder!"); } + return Task.FromResult(true); } } From a33f3249edb33bac7bedf19bd3c6338eb38c557c Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 20 Aug 2024 17:52:35 +0800 Subject: [PATCH 16/19] Update emoji code. --- .../Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs index 5563667438..1329fa5e27 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Libs/AbpMvcLibsService.cs @@ -35,10 +35,10 @@ public class AbpMvcLibsService : IAbpMvcLibsService, ITransientDependency await httpContext.Response.WriteAsync( "" + " " + - " Error — The Libs folder is missing!" + + " Error - The Libs folder is missing!" + " " + " " + - "

⚠️ The Libs folder under the wwwroot/libs directory is empty!

" + + "

⚠️ The Libs folder under the wwwroot/libs directory is empty!

" + "

The Libs folder contains mandatory NPM Packages for running the project.

" + "

Make sure you run the abp install-libs CLI tool command.

" + "

For more information, check out the ABP CLI documentation

" + From 8051dd5c34a7bef94b26e64fef1d968d5aaf1d68 Mon Sep 17 00:00:00 2001 From: ahmetfarukulu Date: Tue, 20 Aug 2024 15:20:24 +0300 Subject: [PATCH 17/19] ABP CLI documentation new options added --- docs/en/cli/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/en/cli/index.md b/docs/en/cli/index.md index c283121ce5..a25ed0c4eb 100644 --- a/docs/en/cli/index.md +++ b/docs/en/cli/index.md @@ -105,6 +105,8 @@ abp cli update abp cli update --preview abp cli update --version 1.0.0 abp cli remove +abp cli check-version +abp cli clear-cache ```` ### new From 1d3fe8685378be45ec91ad0c5ae8d61e36690398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SAL=C4=B0H=20=C3=96ZKARA?= Date: Wed, 21 Aug 2024 12:55:08 +0300 Subject: [PATCH 18/19] Add Yaml Support --- .../Bundling/PrismjsScriptBundleContributorDocsExtension.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Web/Bundling/PrismjsScriptBundleContributorDocsExtension.cs b/modules/docs/src/Volo.Docs.Web/Bundling/PrismjsScriptBundleContributorDocsExtension.cs index 3fc129bf55..0be1e7cb29 100644 --- a/modules/docs/src/Volo.Docs.Web/Bundling/PrismjsScriptBundleContributorDocsExtension.cs +++ b/modules/docs/src/Volo.Docs.Web/Bundling/PrismjsScriptBundleContributorDocsExtension.cs @@ -23,7 +23,8 @@ namespace Volo.Docs.Bundling "scss", "sql", "typescript", - "diff" + "diff", + "yaml" }; public override void ConfigureBundle(BundleConfigurationContext context) From 958e014d9b284cd7b185a4241078a1e62580fa85 Mon Sep 17 00:00:00 2001 From: Dogan Yildirim Date: Thu, 22 Aug 2024 01:19:47 +0300 Subject: [PATCH 19/19] Updated json --- .../Admin/Localization/Resources/en-GB.json | 5 +++-- .../Admin/Localization/Resources/en.json | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json index 505854685e..48cba301a9 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en-GB.json @@ -15,6 +15,7 @@ "Permission:Maintain": "Maintain", "Permission:ClearCaches": "Clear caches", "Permission:Modules": "Modules", + "Permission:UserDownloads": "User Downloads", "Permission:Packages": "Packages", "Permission:Edit": "Edit", "Permission:Delete": "Delete", @@ -102,9 +103,9 @@ "DoYouWantToCreateNewUser": "Do you want to create new user?", "MasterModules": "Master Modules", "OrganizationName": "Organisation name", - "DownloadType": "Download Type", + "DownloadType": "Download type", "UserDownloads": "User Downloads", - "AcceptNewsletter": "Accept Newsletter", + "AcceptNewsletter": "Accept newsletter", "CreationDate": "Creation date", "LicenseStartDate": "License start date", "LicenseEndDate": "License end date", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index c2e0ccf136..0db0423155 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -120,11 +120,15 @@ "PurchaseOrderNo": "Purchase order no", "QuotationDate": "Quotation date", "CompanyName": "Company name", - "DownloadType": "Download Type", + "DownloadType": "Download type", "UserDownloads": "User Downloads", - "AcceptNewsletter": "Accept Newsletter", + "AcceptNewsletter": "Accept newsletter", "CompanyAddress": "Company address", "Price": "Price", + "Unknown": "Unknown", + "DddEBook": "Ddd EBook", + "MasteringAbpFrameworkEBook": "Mastering AbpFramework EBook", + "MicroserviceEBook": "Microservice EBook", "DiscountText": "Discount text", "DiscountQuantity": "Discount quantity", "DiscountPrice": "Discount price", @@ -287,6 +291,7 @@ "Menu:Quotation": "Quotation", "Menu:Invoice": "Invoice", "Menu:Quotation/Invoice": "Quotation/Invoice", + "Menu:UserDownloads": "User Downloads", "Menu:PaymentRequests": "Payment Requests", "Permission:PaymentRequests": "Payment Requests", "PaymentRequests": "Payment Requests", @@ -568,6 +573,7 @@ "AllowAbpStudioBetaAccess": "Allow ABP Studio Beta Access", "TotalQuestionCanNotBeNullMessage": "Total Question can not be null", "Permission:OrganizationAutoRenewalPayments": "Organization Auto Renewal Payments", + "Permission:UserDownloads": "User Downloads", "Permission:RetryFailedPayments": "Retry Failed Payments", "AutoRenewalIsNotEnabled": "Auto Renewal is not enabled!", "LicenseIsNotExpired": "License is not expired!",