diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 1a81fd6c9f..e6dcbc78b0 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,5 +1,22 @@ name: "build and test" on: + push: + branches: + - dev + paths: + - 'framework/**/*.cs' + - 'framework/**/*.cshtml' + - 'framework/**/*.csproj' + - 'framework/**/*.razor' + - 'modules/**/*.cs' + - 'modules/**/*.cshtml' + - 'modules/**/*.csproj' + - 'modules/**/*.razor' + - 'templates/**/*.cs' + - 'templates/**/*.cshtml' + - 'templates/**/*.csproj' + - 'templates/**/*.razor' + pull_request: paths: - 'framework/**/*.cs' diff --git a/.gitignore b/.gitignore index c0347428f2..d3968773a0 100644 --- a/.gitignore +++ b/.gitignore @@ -314,7 +314,7 @@ abp-build-config.json tempkey.jwk # ABP Analyzing files -*.abppkg.analyze.json +# [Disabled for now] *.abppkg.analyze.json # appsettings.secrets.json appsettings.secrets.json \ No newline at end of file diff --git a/README.md b/README.md index 21bc8ab85f..dbf8bce537 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # ABP Framework ![build and test](https://img.shields.io/github/workflow/status/abpframework/abp/build%20and%20test/dev?style=flat-square) +[![codecov](https://codecov.io/gh/abpframework/abp/branch/dev/graph/badge.svg?token=jUKLCxa6HF)](https://codecov.io/gh/abpframework/abp) [![NuGet](https://img.shields.io/nuget/v/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) [![NuGet (with prereleases)](https://img.shields.io/nuget/vpre/Volo.Abp.Core.svg?style=flat-square)](https://www.nuget.org/packages/Volo.Abp.Core) [![MyGet (nightly builds)](https://img.shields.io/myget/abp-nightly/vpre/Volo.Abp.svg?style=flat-square)](https://docs.abp.io/en/abp/latest/Nightly-Builds) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json index af20ee9ba7..5ab632d63e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en-GB.json @@ -101,6 +101,7 @@ "WeWillSendYouADownloadLink": "We've sent the file to {0}.", "InvalidFormInputs": "Please, type the valid information specified on the form.", "DDDBookEmailBody": "Thank you.
To download your book, click here.", - "FreeDDDEBook": "Free DDD E-Book" + "FreeDDDEBook": "Free DDD E-Book", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index c8bfea1f13..3dabab5737 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -388,6 +388,7 @@ "PurchaseTrialLicenseMessage": "Your license expiration date is {0}.
If you want to continue using the projects you created during your free trial period, you need to change the license keys in your appsettings.secrets.json files. Here is your license key:", "TrialLicenseExpireMessage": "You are using the trial license and your trial license will expire on {0}.", "TryForFree": "Try For Free", - "TrialLicenseExpiredInfo": "Your trial license period has expired!" + "TrialLicenseExpiredInfo": "Your trial license period has expired!", + "CommercialNewsletterConfirmationMessage": "I agree to the Terms & Conditions and Privacy Policy." } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index c07678b890..edae77a046 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -98,6 +98,7 @@ "WeWillSendYouADownloadLink": "{0} adresine email gönderilmiştir.", "InvalidFormInputs": "Lütfen formda belirtilen geçerli bilgileri yazınız.", "DDDBookEmailBody": "Teşekkürler.
Kitabı indirmek için, buraya tıklayınız.", - "FreeDDDEBook": "Ücretsiz DDD E-Kitap" + "FreeDDDEBook": "Ücretsiz DDD E-Kitap", + "CommercialNewsletterConfirmationMessage": "Şartlar, Koşullar ve Gizlilik politikasını kabul ediyorum." } } \ No newline at end of file diff --git a/build/common.ps1 b/build/common.ps1 index 172e22ad6a..cdc0eaa1c0 100644 --- a/build/common.ps1 +++ b/build/common.ps1 @@ -7,6 +7,7 @@ $rootFolder = (Get-Item -Path "./" -Verbose).FullName # List of solutions used only in development mode $solutionPaths = @( "../framework", + "../studio", "../modules/basic-theme", "../modules/users", "../modules/permission-management", @@ -19,7 +20,8 @@ $solutionPaths = @( "../modules/background-jobs", "../modules/account", "../modules/cms-kit", - "../modules/blob-storing-database" + "../modules/blob-storing-database", + "../studio" ) if ($full -eq "-f") diff --git a/codecov.yml b/codecov.yml index 2655dd78e3..7ad4672daf 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,6 +1,4 @@ codecov: branch: dev require_ci_to_pass: yes -comment: - require_head: no - require_base: no + allow_coverage_offsets: true diff --git a/common.props b/common.props index 753259efb2..409b435273 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 5.0.0-beta.1 + 5.0.0-beta.2 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ diff --git a/docs/en/Background-Jobs-Hangfire.md b/docs/en/Background-Jobs-Hangfire.md index 3bde5ea010..4ee58d84ef 100644 --- a/docs/en/Background-Jobs-Hangfire.md +++ b/docs/en/Background-Jobs-Hangfire.md @@ -95,12 +95,21 @@ app.UseHangfireDashboard("/hangfire", new DashboardOptions }); ``` +* `AbpHangfireAuthorizationFilter` is an implementation of an authorization filter. + +#### AbpHangfireAuthorizationFilter + +`AbpHangfireAuthorizationFilter` class has the following fields: + +* **`enableTenant` (`bool`, default: `false`):** Enables/disables accessing the Hangfire dashboard on tenant users. +* **`requiredPermissionName` (`string`, default: `null`):** Hangfire dashboard is accessible only if the current user has the specified permission. In this case, if we specify a permission name, we don't need to set `enableTenant` `true` because the permission system already does it. + If you want to require an additional permission, you can pass it into the constructor as below: ```csharp app.UseHangfireDashboard("/hangfire", new DashboardOptions { - AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter("MyHangFireDashboardPermissionName") } + AsyncAuthorization = new[] { new AbpHangfireAuthorizationFilter(requiredPermissionName: "MyHangFireDashboardPermissionName") } }); ``` diff --git a/docs/en/Blog-Posts/2021-10-05 v5_0_Beta1/POST.md b/docs/en/Blog-Posts/2021-10-05 v5_0_Beta1/POST.md index 8a807efdd6..6e83db5da2 100644 --- a/docs/en/Blog-Posts/2021-10-05 v5_0_Beta1/POST.md +++ b/docs/en/Blog-Posts/2021-10-05 v5_0_Beta1/POST.md @@ -1,6 +1,6 @@ # ABP Platform 5.0 Beta 1 Has Been Released -Today, we are excited to release the [ABP Framework](https://abp.io/) and the [ABP Commercial](https://commercial.abp.io/) version **5.0 Beta 1**. This blog post introduces the new features and important changes in this new version. +Today, we are excited to release the [ABP Framework](https://abp.io/) and the [ABP Commercial](https://commercial.abp.io/) version **5.0 Beta**. This blog post introduces the new features and important changes in this new version. > **The planned release date for the [5.0.0 Release Candidate](https://github.com/abpframework/abp/milestone/51) version is November, 2021**. @@ -34,10 +34,13 @@ See the [ABP CLI documentation](https://docs.abp.io/en/abp/latest/CLI) for all t ### Visual Studio Upgrade -As .NET 6 is a preview version you need to make changes on your current Visual Studio. If you want to run a .NET 6 project on Visual Studio 2019, you need to enable the `Use Previews of the .NET SDK` option from Visual Studio 2019 options. See the screenshot: +As .NET 6 is a preview version you need to make changes on the Visual Studio 2019. +If you want to run a .NET 6 project on Visual Studio 2019, you need to install the latest .NET SDK 6 from https://dotnet.microsoft.com/download/dotnet/6.0 +and also enable the `Use Previews of the .NET SDK` option from Visual Studio 2019 options. See the screenshot: ![Enable Using Previews of the .NET SDK ](use-preview-visual-studio.png) + Alternatively you can download the latest Visual Studio 2022 preview to run/create the .NET 6 projects. We have tested the ABP solution with the Visual Studio 2022 `17.0.0 Preview 4.1`. Check out https://visualstudio.microsoft.com/vs/preview/ for more information. ### Migration Notes & Breaking Changes @@ -48,6 +51,7 @@ This is a major version and there are some breaking changes and upgrade steps. H * `IRepository` doesn't inherit from `IQueryable` anymore. It was already made obsolete in 4.2. * Removed NGXS and states from the Angular UI. * Removed gulp dependency from the MVC / Razor Pages UI in favor of `abp install-libs` command of ABP CLI. +* Deprecated EntityCreatingEventData, EntityUpdatingEventData, EntityDeletingEventData and EntityChangingEventData classes. See [#9897](https://github.com/abpframework/abp/issues/9897). Please see the [migration document](https://docs.abp.io/en/abp/5.0/Migration-Guides/Abp-5_0) for all the details. You can also see all [the closed issues and pull request](https://github.com/abpframework/abp/releases/tag/5.0.0-beta.1) on GitHub. diff --git a/docs/en/CLI-New-Command-Samples.md b/docs/en/CLI-New-Command-Samples.md index 9eae987925..430ac01064 100644 --- a/docs/en/CLI-New-Command-Samples.md +++ b/docs/en/CLI-New-Command-Samples.md @@ -1,4 +1,4 @@ -# ABP CLI Create Solution Sample Commands +# ABP CLI - New Solution Sample Commands The `abp new` command creates an ABP solution or other artifacts based on an ABP template. [ABP CLI](CLI.md) has several parameters to create a new ABP solution. In this document we will show you some sample commands to create a new solution. All the project names are `Acme.BookStore`. Currently, the only available mobile project is a `React Native` mobile app. Available database providers are `Entity Framework Core` and `MongoDB`. All the commands starts with `abp new`. @@ -87,6 +87,28 @@ The following commands are for creating Blazor projects: abp new Acme.BookStore -u blazor --database-provider mongodb --mobile none -csf ``` +## Blazor Server + +The following commands are for creating Blazor projects: + +* **Entity Framework Core**, no mobile app: + + ```bash + abp new Acme.BookStore -t app -u blazor-server --mobile none + ``` + +* **Entity Framework Core**, **separate Identity Server**, **separate API Host**, mobile app included: + + ```bash + abp new Acme.BookStore -u blazor-server --tiered + ``` + +* **MongoDB**, no mobile app, creates the project in a new folder: + + ```bash + abp new Acme.BookStore -u blazor --database-provider mongodb --mobile none -csf + ``` + ## No UI In the default app template, there is always a frontend project. In this option there is no frontend project. It has a `HttpApi.Host` project to serve your HTTP WebAPIs. It's appropriate if you want to create a WebAPI service. @@ -101,6 +123,8 @@ In the default app template, there is always a frontend project. In this option ```bash abp new Acme.BookStore -u none --mobile none --database-provider mongodb ``` + + ## Console application diff --git a/docs/en/CLI.md b/docs/en/CLI.md index 4b575ac6f6..7f09911c68 100644 --- a/docs/en/CLI.md +++ b/docs/en/CLI.md @@ -89,12 +89,14 @@ For more samples, go to [ABP CLI Create Solution Samples](CLI-New-Command-Sample * `--ui` or `-u`: Specifies the UI framework. Default framework is `mvc`. Available frameworks: * `mvc`: ASP.NET Core MVC. There are some additional options for this template: * `--tiered`: Creates a tiered solution where Web and Http API layers are physically separated. If not specified, it creates a layered solution which is less complex and suitable for most scenarios. - * `angular`: Angular. There are some additional options for this template: - * `--separate-identity-server`: Separates the identity server application from the API host application. If not specified, you will have a single endpoint in the server side. - * `blazor`: Blazor. There are some additional options for this template: - * `--separate-identity-server`: Separates the identity server application from the API host application. If not specified, you will have a single endpoint in the server side. - * `none`: Without UI. There are some additional options for this template: - * `--separate-identity-server`: Separates the identity server application from the API host application. If not specified, you will have a single endpoint in the server side. + * `angular`: Angular UI. There are some additional options for this template: + * `--separate-identity-server`: The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. + * `blazor`: Blazor UI. There are some additional options for this template: + * `--separate-identity-server`The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. + * `blazor-server`: Blazor Server UI. There are some additional options for this template: + * `--tiered`: The Identity Server and the API Host project comes as separate projects and run at different endpoints. It has 3 startup projects: *HttpApi.Host*, *IdentityServer* and *Blazor* and and each runs on different endpoints. If not specified, you will have a single endpoint for your web project. + * `none`: Without UI. No front-end layer will be created. There are some additional options for this template: + * `--separate-identity-server`: The Identity Server project comes as a separate project and runs at a different endpoint. It separates the Identity Server from the API Host application. If not specified, you will have a single endpoint in the server side. * `--mobile` or `-m`: Specifies the mobile application framework. If not specified, no mobile application will be created. Available options: * `react-native`: React Native. * `--database-provider` or `-d`: Specifies the database provider. Default provider is `ef`. Available providers: diff --git a/docs/en/Migration-Guides/Abp-5-0-Blazor.md b/docs/en/Migration-Guides/Abp-5-0-Blazor.md new file mode 100644 index 0000000000..f0c69b679a --- /dev/null +++ b/docs/en/Migration-Guides/Abp-5-0-Blazor.md @@ -0,0 +1,7 @@ +# ABP Blazor UI v4.x to v5.0 Migration Guide + +> This document is for the ABP MVC / Razor Pages UI. See also [the main migration guide](Abp-5_0.md). + +## Upgrading to the latest Blazorise + +ABP 5.0 uses the latest version of the [Blazorise](https://blazorise.com/) library. Please upgrade the Blazorise NuGet packages in your solution. \ No newline at end of file diff --git a/docs/en/Migration-Guides/Abp-5-0-MVC.md b/docs/en/Migration-Guides/Abp-5-0-MVC.md new file mode 100644 index 0000000000..f2c863c634 --- /dev/null +++ b/docs/en/Migration-Guides/Abp-5-0-MVC.md @@ -0,0 +1,12 @@ +# ABP MVC / Razor Pages UI v4.x to v5.0 Migration Guide + +> This document is for the ABP MVC / Razor Pages UI. See also [the main migration guide](Abp-5_0.md). + +## Use install-libs by default + +Removed the Gulp dependency from the MVC / Razor Pages UI projects in favor of `abp install-libs` command ([see](https://docs.abp.io/en/abp/5.0/UI/AspNetCore/Client-Side-Package-Management#install-libs-command)) of the ABP CLI. You should run this command whenever you change/upgrade your client-side package dependencies via `package.json`. + +## Switched to SweetAlert2 + +Switched from SweetAlert to SweetAlert2. Run the `abp install-libs` command (in the root directory of the web project) after upgrading your solution. See [#9607](https://github.com/abpframework/abp/pull/9607). + diff --git a/docs/en/Migration-Guides/Abp-5_0-Angular.md b/docs/en/Migration-Guides/Abp-5_0-Angular.md index 1188e68556..8226ed5896 100644 --- a/docs/en/Migration-Guides/Abp-5_0-Angular.md +++ b/docs/en/Migration-Guides/Abp-5_0-Angular.md @@ -1,8 +1,8 @@ # Angular UI v4.x to v5.0 Migration Guide -## Breaking Changes +This document is for the ABP MVC / Razor Pages UI. See also [the main migration guide](Abp-5_0.md). -### Overall +## Overall See the overall list of breaking changes: @@ -16,15 +16,15 @@ See the overall list of breaking changes: - Update all dependency versions to the latest [#9806](https://github.com/abpframework/abp/issues/9806) - Chart.js big include with CommonJS warning [#7472](https://github.com/abpframework/abp/issues/7472) -### Angular v12 +## Angular v12 The new ABP Angular UI is based on Angular v12. We started to compile Angular UI packages with the Ivy compilation. Therefore, **new packages only work with Angular v12**. If you are still on the older version of Angular v12, you have to update to Angular v12. The update is usually very easy. See [Angular Update Guide](https://update.angular.io/?l=2&v=11.0-12.0) for further information. -### Bootstrap 5 +## Bootstrap 5 TODO -### NGXS has been removed +## NGXS has been removed We aim to make the ABP Framework free of any state-management solutions. ABP developers should be able to use the ABP Framework with any library/framework of their choice. So, we decided to remove NGXS from ABP packages. @@ -42,7 +42,7 @@ NGXS states and actions, some namespaces have been removed. See [this issue](htt If you don't want to use the NGXS, you should remove all NGXS related imports, injections, etc., from your project. -### @angular/localize package +## @angular/localize package [`@angular/localize`](https://angular.io/api/localize) dependency has been removed from `@abp/ng.core` package. The package must be installed in your app. Run the following command to install: @@ -56,7 +56,7 @@ yarn add @angular/localize > ABP Angular UI packages are not dependent on the `@angular/localize` package. However, some packages (like `@ng-bootstrap/ng-bootstrap`) depend on the package. Thus, this package needs to be installed in your project. -### Proxy endpoints +## Proxy endpoints New endpoints named proxy have been created, related proxies have moved. For example; before v5.0, `IdentityUserService` could be imported from `@abp/ng.identity`. As of v5.0, the service can be imported from `@abp/ng.identity/proxy`. See an example: @@ -79,11 +79,11 @@ Following proxies have been affected: - `@abp/ng.tenant-management` to `@abp/ng.tenant-management/proxy` - **ProfileService** is deleted from `@abp/ng.core`. Instead, you can import it from `@abp/ng.identity/proxy` -### SettingTabsService +## SettingTabsService **SettingTabsService** has moved from `@abp/ng.core` to `@abp/ng.setting-management/config`. -### ChartComponent +## ChartComponent [`ChartComponent`](../UI/Angular/Chart-Component.md) has moved from `@abp/ng.theme.shared` to `@abp/ng.components/chart.js`. To use the component, you need to import the `ChartModule` to your module as follows: diff --git a/docs/en/Migration-Guides/Abp-5_0.md b/docs/en/Migration-Guides/Abp-5_0.md index 2dc880be3b..e9ef522162 100644 --- a/docs/en/Migration-Guides/Abp-5_0.md +++ b/docs/en/Migration-Guides/Abp-5_0.md @@ -1,12 +1,75 @@ # ABP Framework v4.x to v5.0 Migration Guide -## IdentityUser +This document is a guide for upgrading ABP 4.x solutions to ABP 5.0. Please read them all since 5.0 has some important breaking changes. -`IsActive ` property is added to the `IdentityUser`. This flag will be checked during the authentication of the users. See the related [PR](https://github.com/abpframework/abp/pull/10185). -**After the migration, set this property to `true` for the existing users: `UPDATE AbpUsers SET IsActive=1`** +## .NET 6.0 -For EFCore you can set `defaultValue` to `true` in the migration class: -(This will add the column with `true` value for the existing records.) +ABP 5.0 runs on .NET 6.0. So, please upgrade your solution to .NET 6.0 if you want to use ABP 5.0. You can see [Microsoft's migration guide](https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60). + +## Bootstrap 5 + +ABP 5.0 uses the Bootstrap 5 as the fundamental HTML/CSS framework. We've migrated all the UI themes, tag helpers, UI components and the pages of the pre-built application modules. You may need to update your own pages by following the [Bootstrap's migration guide](https://getbootstrap.com/docs/5.0/migration/). + +## Startup Template Changes + +The startup template has changed. You don't need to apply all the changes, but it is strongly suggested to follow [this guide](Upgrading-Startup-Template.md) and make the necessary changes for your solution. + +## ABP Framework + +This section contains breaking changes in the ABP Framework. + +### MongoDB + +ABP Framework will serialize the datetime based on [AbpClockOptions](https://docs.abp.io/en/abp/latest/Timing#clock-options) starting from ABP v5.0. It was saving `DateTime` values as UTC in MongoDB. Check out [MongoDB Datetime Serialization Options](https://mongodb.github.io/mongo-csharp-driver/2.13/reference/bson/mapping/#datetime-serialization-options). + +If you want to revert back this feature, set `UseAbpClockHandleDateTime` to `false` in `AbpMongoDbOptions`: + +```cs +Configure(x => x.UseAbpClockHandleDateTime = false); +``` + +### Publishing Auto-Events in the Same Unit of Work + +Local and distributed auto-events are handled in the same unit of work now. That means the event handles are executed in the same database transaction and they can rollback the transaction if they throw any exception. The new behavior may affect your previous assumptions. See [#9896](https://github.com/abpframework/abp/issues/9896) for more. + +#### Deprecated EntityCreatingEventData, EntityUpdatingEventData, EntityDeletingEventData and EntityChangingEventData + +As a side effect of the previous change, `EntityCreatingEventData`, `EntityUpdatingEventData`, `EntityDeletingEventData` and `EntityChangingEventData` is not necessary now, because `EntityCreatedEventData`, `EntityUpdatedEventData`, `EntityDeletedEventData` and `EntityChangedEventData` is already taken into the current unit of work. Please switch to `EntityCreatedEventData`, `EntityUpdatedEventData`, `EntityDeletedEventData` and `EntityChangedEventData` if you've used the deprecated events. See [#9897](https://github.com/abpframework/abp/issues/9897) to learn more. + +### Removed ModelBuilderConfigurationOptions classes + +If you've used these classes, please remove their usages and use the static properties to customize the module's database mappings. See [#8887](https://github.com/abpframework/abp/issues/8887) for more. + +### Removed Obsolete APIs + +* `IRepository` doesn't inherit from `IQueryable` anymore. It was [made obsolete in 4.2](https://docs.abp.io/en/abp/latest/Migration-Guides/Abp-4_2#irepository-getqueryableasync). + +### Other Breaking Changes + +* [#9549](https://github.com/abpframework/abp/pull/9549) `IObjectValidator` methods have been changed to asynchronous. +* [#9940](https://github.com/abpframework/abp/pull/9940) Use ASP NET Core's authentication scheme to handle `AbpAuthorizationException`. +* [#9180](https://github.com/abpframework/abp/pull/9180) Use `IRemoteContentStream` without form content headers. + +## UI Providers + +* [Angular UI 4.x to 5.0 Migration Guide](Abp-5_0-Angular.md) +* [ASP.NET Core MVC / Razor Pages UI 4.x to 5.0 Migration Guide](Abp-5-0-MVC.md) +* [Blazor UI 4.x to 5.0 Migration Guide](Abp-5-0-Blazor.md) + +## Modules + +This section contains breaking and important changes in the application modules. + +### Identity + +#### User Active/Passive + +An `IsActive` (`bool`) property is added to the `IdentityUser` entity. This flag will be checked during the authentication of the users. EF Core developers need to add a new database migration and update their databases. + +**After the database migration, set this property to `true` for the existing users: `UPDATE AbpUsers SET IsActive=1`**. Otherwise, none of the users can login to the application. + +Alternatively, you can set `defaultValue` to `true` in the migration class (after adding the migration). +This will add the column with `true` value for the existing records. ```cs public partial class AddIsActiveToIdentityUser : Migration @@ -18,7 +81,7 @@ public partial class AddIsActiveToIdentityUser : Migration table: "AbpUsers", type: "bit", nullable: false, - defaultValue: true); // Default is false. + defaultValue: true); // Default is false, change it to true. } protected override void Down(MigrationBuilder migrationBuilder) @@ -30,22 +93,18 @@ public partial class AddIsActiveToIdentityUser : Migration } ``` -For document base databases like MongoDB, you need to manually update the `IsActive` field for the existing user records. - -## MongoDB +For MongoDB, you need to update the `IsActive` field for the existing users in the database. -ABP Framework will serialize the datetime based on [AbpClockOptions](https://docs.abp.io/en/abp/latest/Timing#clock-options) starting from ABP v5.0. It was saving `DateTime` values as UTC in MongoDB. Check out [MongoDB Datetime Serialization Options](https://mongodb.github.io/mongo-csharp-driver/2.13/reference/bson/mapping/#datetime-serialization-options). - -To revert back this feature, set `UseAbpClockHandleDateTime = false` in `AbpMongoDbOptions`: +#### Identity -> Account API Changes -```cs -services.Configure(x => x.UseAbpClockHandleDateTime = false); -``` +`IProfileAppService` (and the implementation and the related DTOs) are moved to the Account module from the Identity module (done with [this PR](https://github.com/abpframework/abp/pull/10370/files)). -## IApiScopeRepository +### IdentityServer -`GetByNameAsync` method renamed as `FindByNameAsync`. +`IApiScopeRepository.GetByNameAsync` method renamed as `FindByNameAsync`. -## Angular UI +## See Also -See the [Angular UI 5.0 Migration Guide](Abp-5_0-Angular.md). +* [Angular UI 4.x to 5.0 Migration Guide](Abp-5_0-Angular.md) +* [ASP.NET Core MVC / Razor Pages UI 4.x to 5.0 Migration Guide]() +* [Blazor UI 4.x to 5.0 Migration Guide](Abp-5-0-Blazor.md) diff --git a/docs/en/UI/Angular/Config-State-Service.md b/docs/en/UI/Angular/Config-State-Service.md index c810562623..3c1930d908 100644 --- a/docs/en/UI/Angular/Config-State-Service.md +++ b/docs/en/UI/Angular/Config-State-Service.md @@ -81,7 +81,7 @@ You can use the `getFeature` or `getFeature$` method of `ConfigStateService` to ```js // this.config is instance of ConfigStateService -const enableLdapLogin = this.configStateService.getFeature("Account.EnableLdapLogin"); +const enableLdapLogin = this.config.getFeature("Account.EnableLdapLogin"); // or this.config.getFeature$("Account.EnableLdapLogin").subscribe(enableLdapLogin => { @@ -98,7 +98,7 @@ You can use the `getSetting` or `getSetting$` method of `ConfigStateService` to ```js // this.config is instance of ConfigStateService -const twoFactorBehaviour = this.configStateService.getSetting("Abp.Identity.TwoFactor.Behaviour"); +const twoFactorBehaviour = this.config.getSetting("Abp.Identity.TwoFactor.Behaviour"); // or this.config.getSetting$("Abp.Identity.TwoFactor.Behaviour").subscribe(twoFactorBehaviour => { diff --git a/docs/en/UI/AspNetCore/Bundling-Minification.md b/docs/en/UI/AspNetCore/Bundling-Minification.md index de706c8ff6..d262a9dd7f 100644 --- a/docs/en/UI/AspNetCore/Bundling-Minification.md +++ b/docs/en/UI/AspNetCore/Bundling-Minification.md @@ -390,6 +390,27 @@ Configure(options => Given file is still added to the bundle, but not minified in this case. +### Load JavaScript and CSS asynchronously + +You can configure `AbpBundlingOptions` to load all or a single js/css file asynchronously. + +**Example:** + +````csharp +Configure(options => +{ + options.PreloadStyles.Add("/__bundles/Basic.Global"); + options.DeferScriptsByDefault = true; +}); +```` + +**Output HTML:** +````html + + + +```` + ## Themes Themes uses the standard package contributors to add library resources to page layouts. Themes may also define some standard/global bundles, so any module can contribute to these standard/global bundles. See the [theming documentation](Theming.md) for more. diff --git a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/DependencyInjection/AbpWebAssemblyConventionalRegistrar.cs b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/DependencyInjection/AbpWebAssemblyConventionalRegistrar.cs index ae597eaac9..3929f6c4cc 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/DependencyInjection/AbpWebAssemblyConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components/Volo/Abp/AspNetCore/Components/DependencyInjection/AbpWebAssemblyConventionalRegistrar.cs @@ -5,39 +5,21 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Components.DependencyInjection { - public class AbpWebAssemblyConventionalRegistrar : ConventionalRegistrarBase + public class AbpWebAssemblyConventionalRegistrar : DefaultConventionalRegistrar { - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (IsConventionalRegistrationDisabled(type)) - { - return; - } - - if (!IsComponent(type)) - { - return; - } - - var serviceTypes = ExposedServiceExplorer.GetExposedServices(type); - - TriggerServiceExposing(services, type, serviceTypes); - - foreach (var serviceType in serviceTypes) - { - services.Add( - ServiceDescriptor.Describe( - serviceType, - type, - ServiceLifetime.Transient - ) - ); - } + return !IsComponent(type) || base.IsConventionalRegistrationDisabled(type); } private static bool IsComponent(Type type) { return typeof(ComponentBase).IsAssignableFrom(type); } + + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return ServiceLifetime.Transient; + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpBundlingOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpBundlingOptions.cs index de941c7537..2087496992 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpBundlingOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling.Abstractions/Volo/Abp/AspNetCore/Mvc/UI/Bundling/AbpBundlingOptions.cs @@ -20,11 +20,23 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling /// public BundlingMode Mode { get; set; } = BundlingMode.Auto; + public bool DeferScriptsByDefault { get; set; } + + public List DeferScripts { get; } + + public bool PreloadStylesByDefault { get; set; } + + public List PreloadStyles { get; } + public AbpBundlingOptions() { StyleBundles = new BundleConfigurationCollection(); ScriptBundles = new BundleConfigurationCollection(); MinificationIgnoredFiles = new HashSet(); + DeferScriptsByDefault = false; + DeferScripts = new List(); + PreloadStylesByDefault = false; + PreloadStyles = new List(); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs index eca80c5fcf..2839d39e3e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleItemTagHelperService.cs @@ -28,6 +28,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { await ResourceService.ProcessAsync( TagHelper.ViewContext, + TagHelper, context, output, new List diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs index f0c76d5cc4..d80a2b9eba 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpBundleTagHelperService.cs @@ -20,6 +20,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { await ResourceService.ProcessAsync( TagHelper.ViewContext, + TagHelper, context, output, await GetBundleItems(context, output), diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelper.cs index 1a4a9d9948..78dfba418b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptBundleTagHelper.cs @@ -5,10 +5,13 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers [HtmlTargetElement("abp-script-bundle", TagStructure = TagStructure.NormalOrSelfClosing)] public class AbpScriptBundleTagHelper : AbpBundleTagHelper, IBundleTagHelper { + [HtmlAttributeName("defer")] + public bool Defer { get; set; } + public AbpScriptBundleTagHelper(AbpScriptBundleTagHelperService service) : base(service) { } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs index 96f8fcd81e..62219e053e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpScriptTagHelper.cs @@ -5,6 +5,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers [HtmlTargetElement("abp-script", TagStructure = TagStructure.NormalOrSelfClosing)] public class AbpScriptTagHelper : AbpBundleItemTagHelper, IBundleItemTagHelper { + [HtmlAttributeName("defer")] + public bool Defer { get; set; } + public AbpScriptTagHelper(AbpScriptTagHelperService service) : base(service) { @@ -16,4 +19,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers return "js"; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelper.cs index b9b65b426f..e7388cc140 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleBundleTagHelper.cs @@ -5,6 +5,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers [HtmlTargetElement("abp-style-bundle", TagStructure = TagStructure.NormalOrSelfClosing)] public class AbpStyleBundleTagHelper : AbpBundleTagHelper, IBundleTagHelper { + [HtmlAttributeName("preload")] + public bool Preload { get; set; } + public AbpStyleBundleTagHelper(AbpStyleBundleTagHelperService service) : base(service) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs index f699812192..a16efdd8ca 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpStyleTagHelper.cs @@ -5,6 +5,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers [HtmlTargetElement("abp-style", TagStructure = TagStructure.NormalOrSelfClosing)] public class AbpStyleTagHelper : AbpBundleItemTagHelper, IBundleItemTagHelper { + [HtmlAttributeName("preload")] + public bool Preload { get; set; } + public AbpStyleTagHelper(AbpStyleTagHelperService service) : base(service) { @@ -16,4 +19,4 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers return "css"; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs index 4166a15c4f..7119646366 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperResourceService.cs @@ -36,6 +36,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers public virtual async Task ProcessAsync( [NotNull] ViewContext viewContext, + [NotNull] TagHelper tagHelper, [NotNull] TagHelperContext context, [NotNull] TagHelperOutput output, [NotNull] List bundleItems, @@ -72,7 +73,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers if (file.Length > 0) { - AddHtmlTag(viewContext, context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks); + AddHtmlTag(viewContext, tagHelper, context, output, bundleFile + "?_v=" + file.LastModified.UtcTicks); } } @@ -84,7 +85,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers protected abstract Task> GetBundleFilesAsync(string bundleName); - protected abstract void AddHtmlTag(ViewContext viewContext, TagHelperContext context, TagHelperOutput output, string file); + protected abstract void AddHtmlTag(ViewContext viewContext, TagHelper tagHelper, TagHelperContext context, TagHelperOutput output, string file); protected virtual string GenerateBundleName(List bundleItems) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs index 68abc09bd0..33dfa3d8af 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperScriptService.cs @@ -4,13 +4,10 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Rendering; -using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Razor.TagHelpers; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.VirtualFileSystem; namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { @@ -19,8 +16,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers public AbpTagHelperScriptService( IBundleManager bundleManager, IOptions options, - IWebHostEnvironment hostingEnvironment - ) : base( + IWebHostEnvironment hostingEnvironment) : base( bundleManager, options, hostingEnvironment) @@ -41,9 +37,19 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers return await BundleManager.GetScriptBundleFilesAsync(bundleName); } - protected override void AddHtmlTag(ViewContext viewContext, TagHelperContext context, TagHelperOutput output, string file) + protected override void AddHtmlTag(ViewContext viewContext, TagHelper tagHelper, TagHelperContext context, TagHelperOutput output, string file) { - output.Content.AppendHtml($"{Environment.NewLine}"); + var defer = tagHelper switch + { + AbpScriptTagHelper scriptTagHelper => scriptTagHelper.Defer, + AbpScriptBundleTagHelper scriptBundleTagHelper => scriptBundleTagHelper.Defer, + _ => false + }; + + var deferText = (defer || Options.DeferScriptsByDefault || Options.DeferScripts.Any(x => file.StartsWith(x, StringComparison.OrdinalIgnoreCase))) + ? "defer" + : string.Empty; + output.Content.AppendHtml($"{Environment.NewLine}"); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs index 3523ac5e29..23b8fc5a56 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo/Abp/AspNetCore/Mvc/UI/Bundling/TagHelpers/AbpTagHelperStyleService.cs @@ -4,13 +4,10 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Rendering; -using Microsoft.AspNetCore.Mvc.Routing; using Microsoft.AspNetCore.Mvc.ViewFeatures; using Microsoft.AspNetCore.Razor.TagHelpers; -using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.VirtualFileSystem; namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers { @@ -19,8 +16,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers public AbpTagHelperStyleService( IBundleManager bundleManager, IOptions options, - IWebHostEnvironment hostingEnvironment - ) : base( + IWebHostEnvironment hostingEnvironment) : base( bundleManager, options, hostingEnvironment) @@ -41,9 +37,23 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers return await BundleManager.GetStyleBundleFilesAsync(bundleName); } - protected override void AddHtmlTag(ViewContext viewContext, TagHelperContext context, TagHelperOutput output, string file) + protected override void AddHtmlTag(ViewContext viewContext, TagHelper tagHelper, TagHelperContext context, TagHelperOutput output, string file) { - output.Content.AppendHtml($"{Environment.NewLine}"); + var preload = tagHelper switch + { + AbpStyleTagHelper styleTagHelper => styleTagHelper.Preload, + AbpStyleBundleTagHelper styleBundleTagHelper => styleBundleTagHelper.Preload, + _ => false + }; + + if (preload || Options.PreloadStylesByDefault || Options.PreloadStyles.Any(x => file.StartsWith(x, StringComparison.OrdinalIgnoreCase))) + { + output.Content.AppendHtml($"{Environment.NewLine}"); + } + else + { + output.Content.AppendHtml($"{Environment.NewLine}"); + } } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/AlertsDemo/AlertsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/AlertsDemo/AlertsDemoViewComponent.cs index 4e1bdd133f..caab46111b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/AlertsDemo/AlertsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/AlertsDemo/AlertsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/AlertsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BadgesDemo/BadgesDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BadgesDemo/BadgesDemoViewComponent.cs index 727b613926..d1fdc0bd45 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BadgesDemo/BadgesDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BadgesDemo/BadgesDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/BadgesDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BordersDemo/BordersDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BordersDemo/BordersDemoViewComponent.cs index b288653010..cc87bfaa93 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BordersDemo/BordersDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BordersDemo/BordersDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/BordersDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BreadcrumbsDemo/BreadcrumbsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BreadcrumbsDemo/BreadcrumbsDemoViewComponent.cs index 0853f2b195..e7c5335558 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BreadcrumbsDemo/BreadcrumbsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/BreadcrumbsDemo/BreadcrumbsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/BreadcrumbsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonGroupsDemo/ButtonGroupsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonGroupsDemo/ButtonGroupsDemoViewComponent.cs index cb134673ac..dc37bd67a3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonGroupsDemo/ButtonGroupsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonGroupsDemo/ButtonGroupsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/ButtonGroupsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonsDemo/ButtonsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonsDemo/ButtonsDemoViewComponent.cs index 5cb6cf0779..8536a0a296 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonsDemo/ButtonsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ButtonsDemo/ButtonsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/ButtonsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CardsDemo/CardsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CardsDemo/CardsDemoViewComponent.cs index 0dafa65c70..ab47fe30b9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CardsDemo/CardsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CardsDemo/CardsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/CardsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CarouselDemo/CarouselDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CarouselDemo/CarouselDemoViewComponent.cs index e57b840269..590e717838 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CarouselDemo/CarouselDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CarouselDemo/CarouselDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/CarouselDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CollapseDemo/CollapseDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CollapseDemo/CollapseDemoViewComponent.cs index 44df03d3c4..678c1ad607 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CollapseDemo/CollapseDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/CollapseDemo/CollapseDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/CollapseDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropdownsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropdownsDemoViewComponent.cs index 1eb9be8cf5..4ff21a4a33 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropdownsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DropdownsDemo/DropdownsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/DropdownsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { var Model = new DropDownDemoDemoModel(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DynamicFormsDemo/DynamicFormsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DynamicFormsDemo/DynamicFormsDemoViewComponent.cs index e768536a9f..5975e2ac36 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DynamicFormsDemo/DynamicFormsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/DynamicFormsDemo/DynamicFormsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/DynamicFormsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { var model = new DynamicFormsDemoModel(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/FormElementsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/FormElementsDemoViewComponent.cs index 22bcde1e52..9b7cc1c1fa 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/FormElementsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/FormElementsDemo/FormElementsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/FormElementsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { var model = new FormElementsDemoModel(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/GridsDemo/GridsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/GridsDemo/GridsDemoViewComponent.cs index e5e031afc0..2962a1c00d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/GridsDemo/GridsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/GridsDemo/GridsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/GridsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ListGroupsDemo/ListGroupsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ListGroupsDemo/ListGroupsDemoViewComponent.cs index 3c48462650..d52cb73bb0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ListGroupsDemo/ListGroupsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ListGroupsDemo/ListGroupsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/ListGroupsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ModalsDemo/ModalsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ModalsDemo/ModalsDemoViewComponent.cs index e4c2ce2c5e..4cd7e1f362 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ModalsDemo/ModalsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ModalsDemo/ModalsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/ModalsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavbarsDemo/NavbarsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavbarsDemo/NavbarsDemoViewComponent.cs index 470857a845..bd7525ca0e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavbarsDemo/NavbarsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavbarsDemo/NavbarsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/NavbarsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavsDemo/NavsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavsDemo/NavsDemoViewComponent.cs index 7149894f46..42224598b0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavsDemo/NavsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/NavsDemo/NavsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/NavsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/PopoversDemo/PopoversDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/PopoversDemo/PopoversDemoViewComponent.cs index 408676f63d..c9a3ee5fc5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/PopoversDemo/PopoversDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/PopoversDemo/PopoversDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/PopoversDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ProgressBarsDemo/ProgressBarsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ProgressBarsDemo/ProgressBarsDemoViewComponent.cs index 33f1e09e15..e278aec9e4 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ProgressBarsDemo/ProgressBarsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/ProgressBarsDemo/ProgressBarsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/ProgressBarsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TablesDemo/TablesDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TablesDemo/TablesDemoViewComponent.cs index 181a58f07f..2d0e092ac6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TablesDemo/TablesDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TablesDemo/TablesDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/TablesDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TabsDemo/TabsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TabsDemo/TabsDemoViewComponent.cs index e001b5157d..adbed4dfe5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TabsDemo/TabsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TabsDemo/TabsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/TabsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TooltipsDemo/TooltipsDemoViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TooltipsDemo/TooltipsDemoViewComponent.cs index 7d30f09a79..75d989f9de 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TooltipsDemo/TooltipsDemoViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Views/Components/Themes/Shared/Demos/TooltipsDemo/TooltipsDemoViewComponent.cs @@ -12,7 +12,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.Views.Components.Themes.S { public const string ViewPath = "/Views/Components/Themes/Shared/Demos/TooltipsDemo/Default.cshtml"; - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View(ViewPath); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpApplicationPath/AbpApplicationPathViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpApplicationPath/AbpApplicationPathViewComponent.cs index 32a89cdcb8..464c99efdd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpApplicationPath/AbpApplicationPathViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpApplicationPath/AbpApplicationPathViewComponent.cs @@ -5,7 +5,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpApp { public class AbpApplicationPathViewComponent : AbpViewComponent { - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { var applicationPath = ViewContext.HttpContext.Request.PathBase.Value; var model = new AbpApplicationPathViewComponentModel diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageSearchBox/AbpPageSearchBoxViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageSearchBox/AbpPageSearchBoxViewComponent.cs index a21a3c51cd..72b92cd6cc 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageSearchBox/AbpPageSearchBoxViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageSearchBox/AbpPageSearchBoxViewComponent.cs @@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpPag { public class AbpPageSearchBoxViewComponent : AbpViewComponent { - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View("~/Pages/Shared/Components/AbpPageSearchBox/Default.cshtml"); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageToolbar/AbpPageToolbarViewComponent.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageToolbar/AbpPageToolbarViewComponent.cs index b07bc69abb..dbb9baa02c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageToolbar/AbpPageToolbarViewComponent.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Pages/Shared/Components/AbpPageToolbar/AbpPageToolbarViewComponent.cs @@ -6,16 +6,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpPag { public class AbpPageToolbarViewComponent : AbpViewComponent { - private readonly IPageToolbarManager _toolbarManager; + protected IPageToolbarManager ToolbarManager { get; } public AbpPageToolbarViewComponent(IPageToolbarManager toolbarManager) { - _toolbarManager = toolbarManager; + ToolbarManager = toolbarManager; } - public async Task InvokeAsync(string pageName) + public virtual async Task InvokeAsync(string pageName) { - var items = await _toolbarManager.GetItemsAsync(pageName); + var items = await ToolbarManager.GetItemsAsync(pageName); return View("~/Pages/Shared/Components/AbpPageToolbar/Default.cshtml", items); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js index 273bf362aa..f89f6ffed7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js @@ -36,11 +36,6 @@ var abp = abp || {}; /* MESSAGE **************************************************/ var showMessage = function (type, message, title) { - if (!title) { - title = message; - message = undefined; - } - var opts = $.extend( {}, abp.libs.sweetAlert.config['default'], diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar.cs index 2ef536db4d..794a71fecd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar.cs @@ -7,36 +7,11 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection { - public class AbpAspNetCoreMvcConventionalRegistrar : ConventionalRegistrarBase + public class AbpAspNetCoreMvcConventionalRegistrar : DefaultConventionalRegistrar { - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (IsConventionalRegistrationDisabled(type)) - { - return; - } - - if (!IsMvcService(type)) - { - return; - } - - var lifeTime = GetMvcServiceLifetime(type); - - var serviceTypes = ExposedServiceExplorer.GetExposedServices(type); - - TriggerServiceExposing(services, type, serviceTypes); - - foreach (var serviceType in serviceTypes) - { - services.Add( - ServiceDescriptor.Describe( - serviceType, - type, - lifeTime - ) - ); - } + return !IsMvcService(type) || base.IsConventionalRegistrationDisabled(type); } protected virtual bool IsMvcService(Type type) @@ -46,11 +21,6 @@ namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection IsViewComponent(type); } - protected virtual ServiceLifetime GetMvcServiceLifetime(Type type) - { - return ServiceLifetime.Transient; - } - private static bool IsPageModel(Type type) { return typeof(PageModel).IsAssignableFrom(type) || type.IsDefined(typeof(PageModelAttribute), true); @@ -65,5 +35,10 @@ namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection { return typeof(ViewComponent).IsAssignableFrom(type) || type.IsDefined(typeof(ViewComponentAttribute), true); } + + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return ServiceLifetime.Transient; + } } } diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRConventionalRegistrar.cs b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRConventionalRegistrar.cs index 9dcb46d6bc..338a90a34a 100644 --- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo/Abp/AspNetCore/SignalR/AbpSignalRConventionalRegistrar.cs @@ -5,39 +5,21 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.SignalR { - public class AbpSignalRConventionalRegistrar : ConventionalRegistrarBase + public class AbpSignalRConventionalRegistrar : DefaultConventionalRegistrar { - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (IsConventionalRegistrationDisabled(type)) - { - return; - } - - if (!IsHub(type)) - { - return; - } - - var serviceTypes = ExposedServiceExplorer.GetExposedServices(type); - - TriggerServiceExposing(services, type, serviceTypes); - - foreach (var serviceType in serviceTypes) - { - services.Add( - ServiceDescriptor.Describe( - serviceType, - type, - ServiceLifetime.Transient - ) - ); - } + return !IsHub(type) || base.IsConventionalRegistrationDisabled(type); } - + private static bool IsHub(Type type) { return typeof(Hub).IsAssignableFrom(type); } + + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return ServiceLifetime.Transient; + } } } diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperConventionalRegistrar.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperConventionalRegistrar.cs index 86fc494676..d5dbbde33a 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperConventionalRegistrar.cs @@ -3,12 +3,11 @@ using System.Linq; using AutoMapper; using AutoMapper.Internal; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.DependencyInjection; namespace Volo.Abp.AutoMapper { - public class AbpAutoMapperConventionalRegistrar : ConventionalRegistrarBase + public class AbpAutoMapperConventionalRegistrar : DefaultConventionalRegistrar { protected readonly Type[] OpenTypes = { typeof(IValueResolver<,,>), @@ -18,17 +17,14 @@ namespace Volo.Abp.AutoMapper typeof(IMappingAction<,>) }; - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (IsConventionalRegistrationDisabled(type)) - { - return; - } + return !OpenTypes.Any(type.ImplementsGenericInterface) || base.IsConventionalRegistrationDisabled(type); + } - if (type.IsClass && !type.IsAbstract && OpenTypes.Any(type.ImplementsGenericInterface)) - { - services.TryAddTransient(type); - } + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return ServiceLifetime.Transient; } } } diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpQuartzConventionalRegistrar.cs b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpQuartzConventionalRegistrar.cs index 8d709c449c..c074633277 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpQuartzConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo/Abp/BackgroundWorkers/Quartz/AbpQuartzConventionalRegistrar.cs @@ -1,27 +1,22 @@ using System; -using Microsoft.Extensions.DependencyInjection; +using System.Collections.Generic; using Volo.Abp.DependencyInjection; namespace Volo.Abp.BackgroundWorkers.Quartz { public class AbpQuartzConventionalRegistrar : DefaultConventionalRegistrar { - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (!typeof(IQuartzBackgroundWorker).IsAssignableFrom(type)) - { - return; - } - - var dependencyAttribute = GetDependencyAttributeOrNull(type); - var lifeTime = GetLifeTimeOrNull(type, dependencyAttribute); + return !typeof(IQuartzBackgroundWorker).IsAssignableFrom(type) || base.IsConventionalRegistrationDisabled(type); + } - if (lifeTime == null) + protected override List GetExposedServiceTypes(Type type) + { + return new List() { - return; - } - - services.Add(ServiceDescriptor.Describe(typeof(IQuartzBackgroundWorker), type, lifeTime.Value)); + typeof(IQuartzBackgroundWorker) + }; } } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index d2da68b5b1..c9de22068a 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -527,6 +527,7 @@ namespace Volo.Abp.BlazoriseUI { await GetEntitiesAsync(); await InvokeAsync(StateHasChanged); + await Notify.Success(L["SuccessfullyDeleted"]); } protected virtual string GetDeleteConfirmationMessage(TListViewModel entity) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs index cd166ea302..ce6156c50d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/AbpCliCoreModule.cs @@ -9,6 +9,7 @@ using Volo.Abp.Cli.ServiceProxying.CSharp; using Volo.Abp.Cli.ServiceProxying.JavaScript; using Volo.Abp.Domain; using Volo.Abp.Http; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.IdentityModel; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultDotNetProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultDotNetProjectBuilder.cs index dba7cebb86..72b1cd2e6d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultDotNetProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/DefaultDotNetProjectBuilder.cs @@ -9,6 +9,13 @@ namespace Volo.Abp.Cli.Build { public class DefaultDotNetProjectBuilder : IDotNetProjectBuilder, ITransientDependency { + public ICmdHelper CmdHelper { get; } + + public DefaultDotNetProjectBuilder(ICmdHelper cmdHelper) + { + CmdHelper = cmdHelper; + } + public List BuildProjects(List projects, string arguments) { var builtProjects = new ConcurrentBag(); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs index a418ceba52..f06fcb6d2d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliService.cs @@ -24,17 +24,20 @@ namespace Volo.Abp.Cli protected ICommandSelector CommandSelector { get; } protected IServiceScopeFactory ServiceScopeFactory { get; } protected NuGetService NuGetService { get; } + public ICmdHelper CmdHelper { get; } public CliService( ICommandLineArgumentParser commandLineArgumentParser, ICommandSelector commandSelector, IServiceScopeFactory serviceScopeFactory, - NuGetService nugetService) + NuGetService nugetService, + ICmdHelper cmdHelper) { CommandLineArgumentParser = commandLineArgumentParser; CommandSelector = commandSelector; ServiceScopeFactory = serviceScopeFactory; NuGetService = nugetService; + CmdHelper = cmdHelper; Logger = NullLogger.Instance; } @@ -42,7 +45,7 @@ namespace Volo.Abp.Cli public async Task RunAsync(string[] args) { Logger.LogInformation("ABP CLI (https://abp.io)"); - + var commandLineArgs = CommandLineArgumentParser.Parse(args); #if !DEBUG @@ -147,7 +150,7 @@ namespace Volo.Abp.Cli await RunInternalAsync(args); } } - + private async Task RunInternalAsync(CommandLineArgs commandLineArgs) { var commandType = CommandSelector.Select(commandLineArgs); @@ -203,7 +206,7 @@ namespace Volo.Abp.Cli { SemanticVersion currentCliVersion = default; - var consoleOutput = new StringReader(CmdHelper.RunCmdAndGetOutput($"dotnet tool list -g")); + var consoleOutput = new StringReader(CmdHelper.RunCmdAndGetOutput($"dotnet tool list -g", out int exitCode)); string line; while ((line = await consoleOutput.ReadLineAsync()) != null) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliUrls.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliUrls.cs index 15d03236ae..736d1a1ba3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliUrls.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/CliUrls.cs @@ -4,19 +4,18 @@ namespace Volo.Abp.Cli { public static class CliUrls { -#if DEBUG + /* public const string WwwAbpIo = WwwAbpIoDevelopment; public const string AccountAbpIo = AccountAbpIoDevelopment; public const string NuGetRootPath = NuGetRootPathDevelopment; -#else +*/ public const string WwwAbpIo = WwwAbpIoProduction; public const string AccountAbpIo = AccountAbpIoProduction; public const string NuGetRootPath = NuGetRootPathProduction; -#endif public const string WwwAbpIoProduction = "https://abp.io/"; public const string AccountAbpIoProduction = "https://account.abp.io/"; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddModuleCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddModuleCommand.cs index 99ddba2de8..aa31060c48 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddModuleCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/AddModuleCommand.cs @@ -18,7 +18,7 @@ namespace Volo.Abp.Cli.Commands public ILogger Logger { get; set; } protected SolutionModuleAdder SolutionModuleAdder { get; } - public SolutionAbpVersionFinder SolutionAbpVersionFinder { get; } + public SolutionPackageVersionFinder SolutionPackageVersionFinder { get; } public AddModuleInfoOutput LastAddedModuleInfo { @@ -33,10 +33,10 @@ namespace Volo.Abp.Cli.Commands } } - public AddModuleCommand(SolutionModuleAdder solutionModuleAdder, SolutionAbpVersionFinder solutionAbpVersionFinder) + public AddModuleCommand(SolutionModuleAdder solutionModuleAdder, SolutionPackageVersionFinder solutionPackageVersionFinder) { SolutionModuleAdder = solutionModuleAdder; - SolutionAbpVersionFinder = solutionAbpVersionFinder; + SolutionPackageVersionFinder = solutionPackageVersionFinder; Logger = NullLogger.Instance; } @@ -62,7 +62,7 @@ namespace Volo.Abp.Cli.Commands var version = commandLineArgs.Options.GetOrNull(Options.Version.Short, Options.Version.Long); if (version == null) { - version = SolutionAbpVersionFinder.Find(solutionFile); + version = SolutionPackageVersionFinder.Find(solutionFile); } var moduleInfo = await SolutionModuleAdder.AddAsync( diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigratorCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigratorCommand.cs index 7b9fbd35fe..89e9ea7904 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigratorCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/CreateMigrationAndRunMigratorCommand.cs @@ -12,10 +12,12 @@ namespace Volo.Abp.Cli.Commands { public class CreateMigrationAndRunMigratorCommand : IConsoleCommand, ITransientDependency { + public ICmdHelper CmdHelper { get; } public ILogger Logger { get; set; } - public CreateMigrationAndRunMigratorCommand() + public CreateMigrationAndRunMigratorCommand(ICmdHelper cmdHelper) { + CmdHelper = cmdHelper; Logger = NullLogger.Instance; } @@ -98,7 +100,7 @@ namespace Volo.Abp.Cli.Commands return Path.GetFileName(dbContext).RemovePostFix(".cs"); } - private static string AddMigrationAndGetOutput(string dbMigrationsFolder, string dbContext, string outputDirectory) + private string AddMigrationAndGetOutput(string dbMigrationsFolder, string dbContext, string outputDirectory) { var dbContextOption = string.IsNullOrWhiteSpace(dbContext) ? string.Empty @@ -107,12 +109,12 @@ namespace Volo.Abp.Cli.Commands var addMigrationCmd = $"cd \"{dbMigrationsFolder}\" && " + $"dotnet ef migrations add Initial --output-dir {outputDirectory} {dbContextOption}"; - return CmdHelper.RunCmdAndGetOutput(addMigrationCmd); + return CmdHelper.RunCmdAndGetOutput(addMigrationCmd, out int exitCode); } - private static bool IsDotNetEfToolInstalled() + private bool IsDotNetEfToolInstalled() { - var output = CmdHelper.RunCmdAndGetOutput("dotnet tool list -g"); + var output = CmdHelper.RunCmdAndGetOutput("dotnet tool list -g", out int exitCode); return output.Contains("dotnet-ef"); } 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 053b7cf346..d347e84418 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 @@ -35,8 +35,9 @@ namespace Volo.Abp.Cli.Commands public NewCommand(TemplateProjectBuilder templateProjectBuilder , ITemplateInfoProvider templateInfoProvider, - ConnectionStringProvider connectionStringProvider) - : base(connectionStringProvider) + ConnectionStringProvider connectionStringProvider, + ICmdHelper cmdHelper) + : base(connectionStringProvider, cmdHelper) { TemplateProjectBuilder = templateProjectBuilder; TemplateInfoProvider = templateInfoProvider; 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 927019f566..6aa528a7b7 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 @@ -18,11 +18,13 @@ namespace Volo.Abp.Cli.Commands public abstract class ProjectCreationCommandBase { public ConnectionStringProvider ConnectionStringProvider { get; } + public ICmdHelper CmdHelper { get; } public ILogger Logger { get; set; } - public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider) + public ProjectCreationCommandBase(ConnectionStringProvider connectionStringProvider, ICmdHelper cmdHelper) { ConnectionStringProvider = connectionStringProvider; + CmdHelper = cmdHelper; Logger = NullLogger.Instance; } @@ -204,6 +206,10 @@ namespace Volo.Abp.Cli.Commands bool isTiered, CommandLineArgs commandLineArgs) { + +#if DEBUG + return; +#endif if (AppTemplateBase.IsAppTemplate(template)) { var isCommercial = template == AppProTemplate.TemplateName; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SuiteCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SuiteCommand.cs index 34cde45265..d81d016ac8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SuiteCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/SuiteCommand.cs @@ -15,13 +15,15 @@ namespace Volo.Abp.Cli.Commands { public class SuiteCommand : IConsoleCommand, ITransientDependency { + public ICmdHelper CmdHelper { get; } private readonly AbpNuGetIndexUrlService _nuGetIndexUrlService; private readonly NuGetService _nuGetService; private const string SuitePackageName = "Volo.Abp.Suite"; public ILogger Logger { get; set; } - public SuiteCommand(AbpNuGetIndexUrlService nuGetIndexUrlService, NuGetService nuGetService) + public SuiteCommand(AbpNuGetIndexUrlService nuGetIndexUrlService, NuGetService nuGetService, ICmdHelper cmdHelper) { + CmdHelper = cmdHelper; _nuGetIndexUrlService = nuGetIndexUrlService; _nuGetService = nuGetService; Logger = NullLogger.Instance; @@ -71,7 +73,7 @@ namespace Volo.Abp.Cli.Commands private string GetCurrentSuiteVersion() { - var dotnetToolList = CmdHelper.RunCmdAndGetOutput("dotnet tool list -g"); + var dotnetToolList = CmdHelper.RunCmdAndGetOutput("dotnet tool list -g", out int exitCode); var suiteLine = dotnetToolList.Split(Environment.NewLine) .FirstOrDefault(l => l.ToLower().StartsWith("volo.abp.suite ")); @@ -127,11 +129,11 @@ namespace Volo.Abp.Cli.Commands versionOption = $" --version {version}"; } - var result = CmdHelper.RunCmd( - $"dotnet tool install {SuitePackageName}{versionOption} --add-source {nugetIndexUrl} -g" + CmdHelper.RunCmd( + $"dotnet tool install {SuitePackageName}{versionOption} --add-source {nugetIndexUrl} -g", out int exitCode ); - if (result == 0) + if (exitCode == 0) { Logger.LogInformation("ABP Suite has been successfully installed."); Logger.LogInformation("You can run it with the CLI command \"abp suite\""); @@ -197,11 +199,11 @@ namespace Volo.Abp.Cli.Commands versionOption = $" --version {version}"; } - var result = CmdHelper.RunCmd( - $"dotnet tool update {SuitePackageName}{versionOption} --add-source {nugetIndexUrl} -g" + CmdHelper.RunCmd( + $"dotnet tool update {SuitePackageName}{versionOption} --add-source {nugetIndexUrl} -g", out int exitCode ); - if (result != 0) + if (exitCode != 0) { ShowSuiteManualUpdateCommand(); } @@ -230,7 +232,7 @@ namespace Volo.Abp.Cli.Commands Logger.LogError("dotnet tool update -g Volo.Abp.Suite --add-source https://nuget.abp.io//v3/index.json"); } - private static void RemoveSuite() + private void RemoveSuite() { CmdHelper.RunCmd("dotnet tool uninstall " + SuitePackageName + " -g"); } @@ -275,7 +277,7 @@ namespace Volo.Abp.Cli.Commands sb.AppendLine(" abp suite"); sb.AppendLine(" abp suite install"); sb.AppendLine(" abp suite install --preview"); - sb.AppendLine(" abp suite install --version 4.2.2"); + sb.AppendLine(" abp suite install --version 4.2.2"); sb.AppendLine(" abp suite update"); sb.AppendLine(" abp suite update --preview"); sb.AppendLine(" abp suite remove"); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs index 5379c62aed..421cae3d3c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs @@ -16,14 +16,16 @@ namespace Volo.Abp.Cli.LIbs { public class InstallLibsService : IInstallLibsService, ITransientDependency { + public ICmdHelper CmdHelper { get; } public const string LibsDirectory = "./wwwroot/libs"; public ILogger Logger { get; set; } private readonly IJsonSerializer _jsonSerializer; - public InstallLibsService(IJsonSerializer jsonSerializer) + public InstallLibsService(IJsonSerializer jsonSerializer, ICmdHelper cmdHelper) { + CmdHelper = cmdHelper; _jsonSerializer = jsonSerializer; Logger = NullLogger.Instance; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs index 7907baaa2d..ef85131ff8 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/NuGet/NuGetService.cs @@ -1,3 +1,4 @@ +using System; using Newtonsoft.Json; using NuGet.Versioning; using System.Collections.Generic; @@ -5,7 +6,6 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; -using Volo.Abp.Cli.Auth; using Volo.Abp.Cli.Http; using Volo.Abp.Cli.Licensing; using Volo.Abp.Cli.ProjectBuilding; @@ -24,7 +24,6 @@ namespace Volo.Abp.Cli.NuGet protected IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } private readonly IApiKeyService _apiKeyService; private readonly CliHttpClientFactory _cliHttpClientFactory; - private List _proPackageList; private DeveloperApiKeyResult _apiKeyResult; public NuGetService( @@ -42,10 +41,32 @@ namespace Volo.Abp.Cli.NuGet Logger = NullLogger.Instance; } + public async Task PackageExistAsync(string packageId, string version = null) + { + var versionList = await GetPackageVersionListAsync(packageId, false, true); + + if (versionList == null) + { + return false; + } + + if (version == null) + { + return versionList.Any(); + } + + return versionList.Contains(version); + } + public async Task GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) { var versionList = await GetPackageVersionListAsync(packageId, includeNightly, includeReleaseCandidates); + if (versionList == null) + { + return null; + } + List versions; if (!includeNightly && !includeReleaseCandidates) @@ -77,76 +98,54 @@ namespace Volo.Abp.Cli.NuGet public async Task> GetPackageVersionListAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) { - if (AuthService.IsLoggedIn()) - { - _proPackageList ??= await GetProPackageListAsync(); - } - - string url; if (includeNightly) { - url = $"https://www.myget.org/F/abp-nightly/api/v3/flatcontainer/{packageId.ToLowerInvariant()}/index.json"; - } - else if (_proPackageList?.Contains(packageId) ?? false) - { - url = await GetNuGetUrlForCommercialPackage(packageId); - } - else - { - url = $"https://api.nuget.org/v3-flatcontainer/{packageId.ToLowerInvariant()}/index.json"; + var includeNightlyUrl = $"https://www.myget.org/F/abp-nightly/api/v3/flatcontainer/{packageId.ToLowerInvariant()}/index.json"; + return await GetPackageVersionListFromUrlAsync(includeNightlyUrl); } - var client = _cliHttpClientFactory.CreateClient(needsAuthentication: false); + var nugetUrl = $"https://api.nuget.org/v3-flatcontainer/{packageId.ToLowerInvariant()}/index.json"; + var commercialUrl = await GetNuGetUrlForCommercialPackage(packageId); - using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( - url, - cancellationToken: CancellationTokenProvider.Token, - logger: Logger - )) - { - await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); - var responseContent = await responseMessage.Content.ReadAsStringAsync(); - return JsonSerializer.Deserialize(responseContent).Versions; - } + return (await GetPackageVersionListFromUrlAsync(nugetUrl)) ?? (await GetPackageVersionListFromUrlAsync(commercialUrl)); } - private async Task GetNuGetUrlForCommercialPackage(string packageId) + private async Task> GetPackageVersionListFromUrlAsync(string url) { - if (_apiKeyResult == null) + try { - _apiKeyResult = await _apiKeyService.GetApiKeyOrNullAsync(); - } + var client = _cliHttpClientFactory.CreateClient(needsAuthentication: false); - return CliUrls.GetNuGetPackageInfoUrl(_apiKeyResult.ApiKey, packageId); + using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( + url, + cancellationToken: CancellationTokenProvider.Token, + logger: Logger + )) + { + await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); + var responseContent = await responseMessage.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseContent).Versions; + } + } + catch (Exception) + { + return null; + } } - private async Task> GetProPackageListAsync() + private async Task GetNuGetUrlForCommercialPackage(string packageId) { - var url = $"{CliUrls.WwwAbpIo}api/app/nugetPackage/proPackageNames"; - var client = _cliHttpClientFactory.CreateClient(needsAuthentication: true); - - using (var responseMessage = await client.GetHttpResponseMessageWithRetryAsync( - url: url, - cancellationToken: CancellationTokenProvider.Token, - logger: Logger - )) + if (_apiKeyResult == null) { - if (responseMessage.IsSuccessStatusCode) - { - return JsonSerializer.Deserialize>(await responseMessage.Content.ReadAsStringAsync()); - } - - var exceptionMessage = "Remote server returns '" + (int)responseMessage.StatusCode + "-" + responseMessage.ReasonPhrase + "'. "; - var remoteServiceErrorMessage = await RemoteServiceExceptionHandler.GetAbpRemoteServiceErrorAsync(responseMessage); + _apiKeyResult = await _apiKeyService.GetApiKeyOrNullAsync(); - if (remoteServiceErrorMessage != null) + if (_apiKeyResult == null) { - exceptionMessage += remoteServiceErrorMessage; + return null; } - - Logger.LogError(exceptionMessage); - return null; } + + return CliUrls.GetNuGetPackageInfoUrl(_apiKeyResult.ApiKey, packageId); } public class NuGetVersionResultDto @@ -155,4 +154,4 @@ namespace Volo.Abp.Cli.NuGet public List Versions { get; set; } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ProjectReferenceReplaceStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ProjectReferenceReplaceStep.cs index dafdc28dc4..b377a8e053 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ProjectReferenceReplaceStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ProjectReferenceReplaceStep.cs @@ -98,11 +98,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { Check.NotNull(content, nameof(content)); - var doc = new XmlDocument() { PreserveWhitespace = true }; - - doc.Load(StreamHelper.GenerateStreamFromString(content)); - - return ProcessReferenceNodes(doc, content); + using (var stream = StreamHelper.GenerateStreamFromString(content)) + { + var doc = new XmlDocument() { PreserveWhitespace = true }; + doc.Load(stream); + return ProcessReferenceNodes(doc, content); + } } private string ProcessReferenceNodes(XmlDocument doc, string content) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs index b8c1f24b46..d2b2f7f95c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveProjectFromSolutionStep.cs @@ -1,6 +1,10 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Volo.Abp.Cli.ProjectBuilding.Files; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { @@ -35,6 +39,25 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps var solutionFile = context.GetFile(_solutionFilePath); solutionFile.NormalizeLineEndings(); solutionFile.SetLines(RemoveProject(solutionFile.GetLines().ToList())); + + RemoveProjectFromAbpmdlFile(context); + } + + private void RemoveProjectFromAbpmdlFile(ProjectBuildContext context) + { + var abpmdlFile = context.FindFile(_solutionFilePath.RemovePostFix(".sln") + ".abpmdl.json"); + + if (abpmdlFile == null) + { + return; + } + + var jsonRoot = JObject.Parse(abpmdlFile.Content); + var packagesObj = (JObject) jsonRoot["packages"]; + + packagesObj?.Remove(_projectName); + + abpmdlFile.SetContent(jsonRoot.ToString(Formatting.Indented)); } private List RemoveProject(List solutionFileLines) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceCommonPropsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceCommonPropsStep.cs index c615bcdfce..89147e8043 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceCommonPropsStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceCommonPropsStep.cs @@ -40,11 +40,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { Check.NotNull(content, nameof(content)); - var doc = new XmlDocument() { PreserveWhitespace = true }; - - doc.Load(StreamHelper.GenerateStreamFromString(content)); - - return ProcessReferenceNodes(doc, content); + using (var stream = StreamHelper.GenerateStreamFromString(content)) + { + var doc = new XmlDocument() { PreserveWhitespace = true }; + doc.Load(stream); + return ProcessReferenceNodes(doc, content); + } } private string ProcessReferenceNodes(XmlDocument doc, string content) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceConfigureAwaitPropsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceConfigureAwaitPropsStep.cs index 1541284009..8801bf3c3c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceConfigureAwaitPropsStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ReplaceConfigureAwaitPropsStep.cs @@ -40,11 +40,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps { Check.NotNull(content, nameof(content)); - var doc = new XmlDocument() { PreserveWhitespace = true }; - - doc.Load(StreamHelper.GenerateStreamFromString(content)); - - return ProcessReferenceNodes(doc, content); + using (var stream = StreamHelper.GenerateStreamFromString(content)) + { + var doc = new XmlDocument() { PreserveWhitespace = true }; + doc.Load(stream); + return ProcessReferenceNodes(doc, content); + } } private string ProcessReferenceNodes(XmlDocument doc, string content) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs index 05996b90d7..8bc0c2d05e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/EfCoreMigrationManager.cs @@ -10,10 +10,12 @@ namespace Volo.Abp.Cli.ProjectModification { public class EfCoreMigrationManager : ITransientDependency { + public ICmdHelper CmdHelper { get; } public ILogger Logger { get; set; } - public EfCoreMigrationManager() + public EfCoreMigrationManager(ICmdHelper cmdHelper) { + CmdHelper = cmdHelper; Logger = NullLogger.Instance; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs index 7c8ba63e29..7df511592b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs @@ -7,10 +7,12 @@ namespace Volo.Abp.Cli.ProjectModification { public class NpmGlobalPackagesChecker : ITransientDependency { + public ICmdHelper CmdHelper { get; } public ILogger Logger { get; set; } - public NpmGlobalPackagesChecker() + public NpmGlobalPackagesChecker(ICmdHelper cmdHelper) { + CmdHelper = cmdHelper; Logger = NullLogger.Instance; } @@ -31,7 +33,7 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual string GetInstalledNpmPackages() { Logger.LogInformation("Checking installed npm global packages..."); - return CmdHelper.RunCmdAndGetOutput("npm list -g --depth 0 --silent"); + return CmdHelper.RunCmdAndGetOutput("npm list -g --depth 0 --silent", out int exitCode); } protected virtual void InstallYarn() diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index bf23bc3786..4530b59142 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -23,6 +23,7 @@ namespace Volo.Abp.Cli.ProjectModification { public ILogger Logger { get; set; } protected ICancellationTokenProvider CancellationTokenProvider { get; } + public ICmdHelper CmdHelper { get; } private readonly PackageJsonFileFinder _packageJsonFileFinder; private readonly NpmGlobalPackagesChecker _npmGlobalPackagesChecker; @@ -33,11 +34,13 @@ namespace Volo.Abp.Cli.ProjectModification PackageJsonFileFinder packageJsonFileFinder, NpmGlobalPackagesChecker npmGlobalPackagesChecker, ICancellationTokenProvider cancellationTokenProvider, - CliHttpClientFactory cliHttpClientFactory) + CliHttpClientFactory cliHttpClientFactory, + ICmdHelper cmdHelper) { _packageJsonFileFinder = packageJsonFileFinder; _npmGlobalPackagesChecker = npmGlobalPackagesChecker; CancellationTokenProvider = cancellationTokenProvider; + CmdHelper = cmdHelper; _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs index efecee8d79..d505453d59 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NugetPackageToLocalReferenceConverter.cs @@ -31,13 +31,13 @@ namespace Volo.Abp.Cli.ProjectModification foreach (var projectFile in projectFiles) { var content = File.ReadAllText(projectFile); - var doc = new XmlDocument() { PreserveWhitespace = true }; - - doc.Load(StreamHelper.GenerateStreamFromString(content)); - - var convertedProject = ProcessReferenceNodes(folder, doc, nugetPackageList, localPathPrefix, sourceFile, modulePrefix); - - File.WriteAllText(projectFile, convertedProject); + using (var stream = StreamHelper.GenerateStreamFromString(content)) + { + var doc = new XmlDocument() { PreserveWhitespace = true }; + doc.Load(stream); + var convertedProject = ProcessReferenceNodes(folder, doc, nugetPackageList, localPathPrefix, sourceFile, modulePrefix); + File.WriteAllText(projectFile, convertedProject); + } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs index 3c283319ac..3baab9ed98 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNpmPackageAdder.cs @@ -26,6 +26,7 @@ namespace Volo.Abp.Cli.ProjectModification public SourceCodeDownloadService SourceCodeDownloadService { get; } public AngularSourceCodeAdder AngularSourceCodeAdder { get; } public IRemoteServiceExceptionHandler RemoteServiceExceptionHandler { get; } + public ICmdHelper CmdHelper { get; } private readonly CliHttpClientFactory _cliHttpClientFactory; public ILogger Logger { get; set; } @@ -33,12 +34,14 @@ namespace Volo.Abp.Cli.ProjectModification IJsonSerializer jsonSerializer, SourceCodeDownloadService sourceCodeDownloadService, AngularSourceCodeAdder angularSourceCodeAdder, - IRemoteServiceExceptionHandler remoteServiceExceptionHandler) + IRemoteServiceExceptionHandler remoteServiceExceptionHandler, + ICmdHelper cmdHelper) { JsonSerializer = jsonSerializer; SourceCodeDownloadService = sourceCodeDownloadService; AngularSourceCodeAdder = angularSourceCodeAdder; RemoteServiceExceptionHandler = remoteServiceExceptionHandler; + CmdHelper = cmdHelper; _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -202,4 +205,4 @@ namespace Volo.Abp.Cli.ProjectModification } } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index 6d88ecb3ec..7f5ce3ef8a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -25,6 +25,7 @@ namespace Volo.Abp.Cli.ProjectModification public BundleCommand BundleCommand { get; } public SourceCodeDownloadService SourceCodeDownloadService { get; } public SolutionFileModifier SolutionFileModifier { get; } + public ICmdHelper CmdHelper { get; } protected IJsonSerializer JsonSerializer { get; } protected ProjectNpmPackageAdder NpmPackageAdder { get; } @@ -43,7 +44,8 @@ namespace Volo.Abp.Cli.ProjectModification BundleCommand bundleCommand, CliHttpClientFactory cliHttpClientFactory, SourceCodeDownloadService sourceCodeDownloadService, - SolutionFileModifier solutionFileModifier) + SolutionFileModifier solutionFileModifier, + ICmdHelper cmdHelper) { JsonSerializer = jsonSerializer; NpmPackageAdder = npmPackageAdder; @@ -53,6 +55,7 @@ namespace Volo.Abp.Cli.ProjectModification BundleCommand = bundleCommand; SourceCodeDownloadService = sourceCodeDownloadService; SolutionFileModifier = solutionFileModifier; + CmdHelper = cmdHelper; _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -140,37 +143,38 @@ namespace Volo.Abp.Cli.ProjectModification return projectFile; } - protected virtual async Task ConvertPackageReferenceToProjectReference(string projectFile,string solutionFile, NugetPackageInfo package) + protected virtual async Task ConvertPackageReferenceToProjectReference(string projectFile, string solutionFile, NugetPackageInfo package) { var content = File.ReadAllText(projectFile); - var doc = new XmlDocument() {PreserveWhitespace = true}; + var doc = new XmlDocument() { PreserveWhitespace = true }; - doc.Load(StreamHelper.GenerateStreamFromString(content)); - - var nodes = doc.SelectNodes( - $"/Project/ItemGroup/PackageReference[starts-with(@Include, '{package.Name}')]"); - - if (nodes == null || nodes.Count < 1) + using (var stream = StreamHelper.GenerateStreamFromString(content)) { - return; - } + doc.Load(stream); + var nodes = doc.SelectNodes($"/Project/ItemGroup/PackageReference[starts-with(@Include, '{package.Name}')]"); + if (nodes == null || nodes.Count < 1) + { + return; + } - var downloadedProjectPath = FindRelativeFolderToDownloadPackage(projectFile, solutionFile, package); - var oldNodeIncludeValue = nodes[0]?.Attributes?["Include"]?.Value; + var downloadedProjectPath = FindRelativeFolderToDownloadPackage(projectFile, solutionFile, package); + var oldNodeIncludeValue = nodes[0]?.Attributes?["Include"]?.Value; - if (package.Name == oldNodeIncludeValue) - { - var referenceProjectPath = $"{downloadedProjectPath}\\{package.Name}.csproj"; + if (package.Name == oldNodeIncludeValue) + { + var referenceProjectPath = $"{downloadedProjectPath}\\{package.Name}.csproj"; - var newNode = doc.CreateElement("ProjectReference"); - var includeAttr = doc.CreateAttribute("Include"); - includeAttr.Value = referenceProjectPath; - newNode.Attributes.Append(includeAttr); + var newNode = doc.CreateElement("ProjectReference"); + var includeAttr = doc.CreateAttribute("Include"); + includeAttr.Value = referenceProjectPath; + newNode.Attributes.Append(includeAttr); - nodes[0]?.ParentNode?.ReplaceChild(newNode, nodes[0]); - } + nodes[0]?.ParentNode?.ReplaceChild(newNode, nodes[0]); + } - File.WriteAllText(projectFile, doc.OuterXml); + File.WriteAllText(projectFile, doc.OuterXml); + await Task.CompletedTask; + } } protected virtual async Task AddSourceCode(string projectFile, string solutionFile, NugetPackageInfo package, string version = null) @@ -192,7 +196,7 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual string FindRelativeFolderToDownloadPackage(string projectFile, string solutionFile, NugetPackageInfo package) { - var folder = Path.Combine(Path.GetDirectoryName(solutionFile), "packages", package.Name); + var folder = Path.Combine(Path.GetDirectoryName(solutionFile), "packages", package.Name); return new Uri(projectFile).MakeRelativeUri(new Uri(folder)).ToString().Replace("/", "\\"); } @@ -307,56 +311,52 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual Task AddToCsprojManuallyAsync(string projectFile, NugetPackageInfo package, string version = null) { var projectFileContent = File.ReadAllText(projectFile); - var doc = new XmlDocument() {PreserveWhitespace = true}; - doc.Load(StreamHelper.GenerateStreamFromString(projectFileContent)); - - var itemGroupNodes = doc.SelectNodes("/Project/ItemGroup"); - XmlNode itemGroupNode = null; - - if (itemGroupNodes == null || itemGroupNodes.Count < 1) + var doc = new XmlDocument() { PreserveWhitespace = true }; + using (var stream = StreamHelper.GenerateStreamFromString(projectFileContent)) { - var projectNodes = doc.SelectNodes("/Project"); - var projectNode = projectNodes[0]; + doc.Load(stream); - itemGroupNode = doc.CreateElement("ItemGroup"); - projectNode.AppendChild(itemGroupNode); - } - else - { - itemGroupNode = itemGroupNodes[0]; - } + var itemGroupNodes = doc.SelectNodes("/Project/ItemGroup"); + XmlNode itemGroupNode = null; - var packageReferenceNode = doc.CreateElement("PackageReference"); + if (itemGroupNodes == null || itemGroupNodes.Count < 1) + { + var projectNodes = doc.SelectNodes("/Project"); + var projectNode = projectNodes[0]; - var includeAttr = doc.CreateAttribute("Include"); - includeAttr.Value = package.Name; - packageReferenceNode.Attributes.Append(includeAttr); + itemGroupNode = doc.CreateElement("ItemGroup"); + projectNode.AppendChild(itemGroupNode); + } + else + { + itemGroupNode = itemGroupNodes[0]; + } - if (version != null) - { - var versionAttr = doc.CreateAttribute("Version"); - versionAttr.Value = version; - packageReferenceNode.Attributes.Append(versionAttr); - } + var packageReferenceNode = doc.CreateElement("PackageReference"); - itemGroupNode.AppendChild(packageReferenceNode); + var includeAttr = doc.CreateAttribute("Include"); + includeAttr.Value = package.Name; + packageReferenceNode.Attributes.Append(includeAttr); - File.WriteAllText(projectFile, doc.OuterXml); + if (version != null) + { + var versionAttr = doc.CreateAttribute("Version"); + versionAttr.Value = version; + packageReferenceNode.Attributes.Append(versionAttr); + } - return Task.CompletedTask; + itemGroupNode.AppendChild(packageReferenceNode); + File.WriteAllText(projectFile, doc.OuterXml); + return Task.CompletedTask; + } } protected virtual string GetAbpVersionOrNull(string projectFile) { var projectFileContent = File.ReadAllText(projectFile); - - var doc = new XmlDocument() {PreserveWhitespace = true}; - - doc.Load(StreamHelper.GenerateStreamFromString(projectFileContent)); - - var nodes = doc.SelectNodes("/Project/ItemGroup/PackageReference[starts-with(@Include, 'Volo.')]"); - - return nodes?[0]?.Attributes?["Version"]?.Value; + return SolutionPackageVersionFinder.TryParseVersionFromCsprojFile(projectFileContent, out var version) + ? version + : null; } protected virtual async Task FindNugetPackageInfoAsync(string packageName) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index 70900bfec7..cf1e9a3687 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -30,6 +30,7 @@ namespace Volo.Abp.Cli.ProjectModification public AngularSourceCodeAdder AngularSourceCodeAdder { get; } public NewCommand NewCommand { get; } public BundleCommand BundleCommand { get; } + public ICmdHelper CmdHelper { get; } protected IJsonSerializer JsonSerializer { get; } protected ProjectNugetPackageAdder ProjectNugetPackageAdder { get; } @@ -58,7 +59,8 @@ namespace Volo.Abp.Cli.ProjectModification AngularSourceCodeAdder angularSourceCodeAdder, NewCommand newCommand, BundleCommand bundleCommand, - CliHttpClientFactory cliHttpClientFactory) + CliHttpClientFactory cliHttpClientFactory, + ICmdHelper cmdHelper) { JsonSerializer = jsonSerializer; ProjectNugetPackageAdder = projectNugetPackageAdder; @@ -74,6 +76,7 @@ namespace Volo.Abp.Cli.ProjectModification AngularSourceCodeAdder = angularSourceCodeAdder; NewCommand = newCommand; BundleCommand = bundleCommand; + CmdHelper = cmdHelper; _cliHttpClientFactory = cliHttpClientFactory; Logger = NullLogger.Instance; } @@ -620,7 +623,7 @@ namespace Volo.Abp.Cli.ProjectModification if (!string.IsNullOrEmpty(dbMigratorProject)) { - CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(dbMigratorProject) + "\" && dotnet run"); + CmdHelper.RunCmd("cd \"" + Path.GetDirectoryName(dbMigratorProject) + "\" && dotnet run", out int exitCode); } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionAbpVersionFinder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionPackageVersionFinder.cs similarity index 82% rename from framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionAbpVersionFinder.cs rename to framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionPackageVersionFinder.cs index 93dbeacc22..e3aa93bdf3 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionAbpVersionFinder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionPackageVersionFinder.cs @@ -7,15 +7,15 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.Cli.ProjectModification { - public class SolutionAbpVersionFinder : ITransientDependency + public class SolutionPackageVersionFinder : ITransientDependency { - public string Find(string solutionFile) + public string Find(string solutionFile, string packagePrefix = "Volo.Abp") { var projectFilesUnderSrc = GetProjectFilesOfSolution(solutionFile); foreach (var projectFile in projectFilesUnderSrc) { var content = File.ReadAllText(projectFile); - if (TryParseVersionFromCsprojViaXmlDocument(content, out var s)) + if (TryParseVersionFromCsprojViaXmlDocument(content, out var s, packagePrefix)) { return s; } @@ -24,13 +24,13 @@ namespace Volo.Abp.Cli.ProjectModification return null; } - private static bool TryParseVersionFromCsprojViaXmlDocument(string content, out string version) + private static bool TryParseVersionFromCsprojViaXmlDocument(string content, out string version, string packagePrefix) { var doc = new XmlDocument() { PreserveWhitespace = true }; using (var stream = StreamHelper.GenerateStreamFromString(content)) { doc.Load(stream); - var nodes = doc.SelectNodes("/Project/ItemGroup/PackageReference[starts-with(@Include, 'Volo.Abp')]"); + var nodes = doc.SelectNodes($"/Project/ItemGroup/PackageReference[starts-with(@Include, '{packagePrefix}')]"); var value = nodes?[0]?.Attributes?["Version"]?.Value; if (value == null) { @@ -43,12 +43,12 @@ namespace Volo.Abp.Cli.ProjectModification } } - public static bool TryParseVersionFromCsprojFile(string csprojContent, out string version) + public static bool TryParseVersionFromCsprojFile(string csprojContent, out string version, string packagePrefix = "Volo.Abp") { try { var matches = Regex.Matches(csprojContent, - @"PackageReference\s*Include\s*=\s*\""Volo.Abp(.*?)\""\s*Version\s*=\s*\""(.*?)\""", + @"PackageReference\s*Include\s*=\s*\""" + packagePrefix + @"(.*?)\""\s*Version\s*=\s*\""(.*?)\""", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline | RegexOptions.Multiline); @@ -72,11 +72,11 @@ namespace Volo.Abp.Cli.ProjectModification } - public static bool TryParseSemanticVersionFromCsprojFile(string csprojContent, out SemanticVersion version) + public static bool TryParseSemanticVersionFromCsprojFile(string csprojContent, out SemanticVersion version, string packagePrefix = "Volo.Abp") { try { - if (TryParseVersionFromCsprojFile(csprojContent, out var versionText)) + if (TryParseVersionFromCsprojFile(csprojContent, out var versionText, packagePrefix)) { return SemanticVersion.TryParse(versionText, out version); } @@ -90,13 +90,13 @@ namespace Volo.Abp.Cli.ProjectModification return false; } - public static bool TryFind(string solutionFile, out string version) + public static bool TryFind(string solutionFile, out string version, string packagePrefix = "Volo.Abp") { var projectFiles = GetProjectFilesOfSolution(solutionFile); foreach (var projectFile in projectFiles) { var csprojContent = File.ReadAllText(projectFile); - if (TryParseVersionFromCsprojFile(csprojContent, out var parsedVersion)) + if (TryParseVersionFromCsprojFile(csprojContent, out var parsedVersion, packagePrefix)) { version = parsedVersion; return true; @@ -107,13 +107,13 @@ namespace Volo.Abp.Cli.ProjectModification return false; } - public static bool TryFindSemanticVersion(string solutionFile, out SemanticVersion version) + public static bool TryFindSemanticVersion(string solutionFile, out SemanticVersion version, string packagePrefix = "Volo.Abp") { var projectFiles = GetProjectFilesOfSolution(solutionFile); foreach (var projectFile in projectFiles) { var csprojContent = File.ReadAllText(projectFile); - if (TryParseSemanticVersionFromCsprojFile(csprojContent, out var parsedVersion)) + if (TryParseSemanticVersionFromCsprojFile(csprojContent, out var parsedVersion, packagePrefix)) { version = parsedVersion; return true; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs index 2e20ec634a..bc5579ca1d 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ServiceProxying/Angular/AngularServiceProxyGenerator.cs @@ -17,13 +17,16 @@ namespace Volo.Abp.Cli.ServiceProxying.Angular public const string Name = "NG"; private readonly CliService _cliService; + private readonly ICmdHelper _cmdhelper; public AngularServiceProxyGenerator( CliHttpClientFactory cliHttpClientFactory, IJsonSerializer jsonSerializer, + ICmdHelper cmdhelper, CliService cliService) : base(cliHttpClientFactory, jsonSerializer) { + _cmdhelper = cmdhelper; _cliService = cliService; } @@ -63,7 +66,7 @@ namespace Volo.Abp.Cli.ServiceProxying.Angular commandBuilder.Append($" --target {target}"); } - CmdHelper.RunCmd(commandBuilder.ToString()); + _cmdhelper.RunCmd(commandBuilder.ToString()); } private async Task CheckNgSchematicsAsync() diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs index 07b470225a..72b9ba1a90 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/CmdHelper.cs @@ -1,14 +1,15 @@ using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; +using Volo.Abp.DependencyInjection; namespace Volo.Abp.Cli.Utils { - public static class CmdHelper + public class CmdHelper : ICmdHelper, ITransientDependency { - public static int SuccessfulExitCode = 0; + private const int SuccessfulExitCode = 0; - public static void OpenWebPage(string url) + public void OpenWebPage(string url) { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { @@ -25,45 +26,57 @@ namespace Volo.Abp.Cli.Utils } } - public static void Run(string file, string arguments) + + public void Run(string file, string arguments) { var procStartInfo = new ProcessStartInfo(file, arguments); Process.Start(procStartInfo)?.WaitForExit(); } - public static int RunCmd(string command) + public void RunCmd(string command, string workingDirectory = null) + { + RunCmd(command, out _, workingDirectory); + } + + public void RunCmd(string command, out int exitCode, string workingDirectory = null) { var procStartInfo = new ProcessStartInfo( GetFileName(), GetArguments(command) ); + if (!string.IsNullOrEmpty(workingDirectory)) + { + procStartInfo.WorkingDirectory = workingDirectory; + } + using (var process = Process.Start(procStartInfo)) { process?.WaitForExit(); - return process?.ExitCode ?? 0; + + exitCode = process.ExitCode; } } - public static string RunCmdAndGetOutput(string command) + public string RunCmdAndGetOutput(string command, string workingDirectory = null) { - return RunCmdAndGetOutput(command, out int _); + return RunCmdAndGetOutput(command, out int _, workingDirectory); } - public static string RunCmdAndGetOutput(string command, out bool isExitCodeSuccessful) + public string RunCmdAndGetOutput(string command, out bool isExitCodeSuccessful, string workingDirectory = null) { - var output = RunCmdAndGetOutput(command, out int exitCode); + var output = RunCmdAndGetOutput(command, out int exitCode, workingDirectory); isExitCodeSuccessful = exitCode == SuccessfulExitCode; return output; } - public static string RunCmdAndGetOutput(string command, out int exitCode) + public string RunCmdAndGetOutput(string command, out int exitCode, string workingDirectory = null) { string output; using (var process = new Process()) { - process.StartInfo = new ProcessStartInfo(CmdHelper.GetFileName()) + process.StartInfo = new ProcessStartInfo(GetFileName()) { Arguments = GetArguments(command), UseShellExecute = false, @@ -72,6 +85,11 @@ namespace Volo.Abp.Cli.Utils RedirectStandardError = true }; + if (!string.IsNullOrEmpty(workingDirectory)) + { + process.StartInfo.WorkingDirectory = workingDirectory; + } + process.Start(); using (var standardOutput = process.StandardOutput) @@ -91,7 +109,7 @@ namespace Volo.Abp.Cli.Utils return output.Trim(); } - public static string GetArguments(string command) + public string GetArguments(string command) { if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) || RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { @@ -102,7 +120,7 @@ namespace Volo.Abp.Cli.Utils return "/C \"" + command + "\""; } - public static string GetFileName() + public string GetFileName() { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/ICmdHelper.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/ICmdHelper.cs new file mode 100644 index 0000000000..15234c2c82 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Utils/ICmdHelper.cs @@ -0,0 +1,24 @@ +namespace Volo.Abp.Cli.Utils +{ + public interface ICmdHelper + { + void OpenWebPage(string url); + + void Run(string file, string arguments); + + string GetArguments(string command); + + string GetFileName(); + + void RunCmd(string command, string workingDirectory = null); + + void RunCmd(string command, out int exitCode, string workingDirectory = null); + + string RunCmdAndGetOutput(string command, string workingDirectory = null); + + + string RunCmdAndGetOutput(string command, out bool isExitCodeSuccessful, string workingDirectory = null); + + string RunCmdAndGetOutput(string command, out int exitCode, string workingDirectory = null); + } +} diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs index 8a47e7fa17..e79a914209 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/ConventionalRegistrarBase.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Reflection; @@ -50,5 +51,102 @@ namespace Volo.Abp.DependencyInjection } } } + + protected virtual DependencyAttribute GetDependencyAttributeOrNull(Type type) + { + return type.GetCustomAttribute(true); + } + + protected virtual ServiceLifetime? GetLifeTimeOrNull(Type type, [CanBeNull] DependencyAttribute dependencyAttribute) + { + return dependencyAttribute?.Lifetime ?? GetServiceLifetimeFromClassHierarchy(type) ?? GetDefaultLifeTimeOrNull(type); + } + + protected virtual ServiceLifetime? GetServiceLifetimeFromClassHierarchy(Type type) + { + if (typeof(ITransientDependency).GetTypeInfo().IsAssignableFrom(type)) + { + return ServiceLifetime.Transient; + } + + if (typeof(ISingletonDependency).GetTypeInfo().IsAssignableFrom(type)) + { + return ServiceLifetime.Singleton; + } + + if (typeof(IScopedDependency).GetTypeInfo().IsAssignableFrom(type)) + { + return ServiceLifetime.Scoped; + } + + return null; + } + + protected virtual ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return null; + } + + protected virtual List GetExposedServiceTypes(Type type) + { + return ExposedServiceExplorer.GetExposedServices(type); + } + + protected virtual ServiceDescriptor CreateServiceDescriptor( + Type implementationType, + Type exposingServiceType, + List allExposingServiceTypes, + ServiceLifetime lifeTime) + { + if (lifeTime.IsIn(ServiceLifetime.Singleton, ServiceLifetime.Scoped)) + { + var redirectedType = GetRedirectedTypeOrNull( + implementationType, + exposingServiceType, + allExposingServiceTypes + ); + + if (redirectedType != null) + { + return ServiceDescriptor.Describe( + exposingServiceType, + provider => provider.GetService(redirectedType), + lifeTime + ); + } + } + + return ServiceDescriptor.Describe( + exposingServiceType, + implementationType, + lifeTime + ); + } + + protected virtual Type GetRedirectedTypeOrNull( + Type implementationType, + Type exposingServiceType, + List allExposingServiceTypes) + { + if (allExposingServiceTypes.Count < 2) + { + return null; + } + + if (exposingServiceType == implementationType) + { + return null; + } + + if (allExposingServiceTypes.Contains(implementationType)) + { + return implementationType; + } + + return allExposingServiceTypes.FirstOrDefault( + t => t != exposingServiceType && exposingServiceType.IsAssignableFrom(t) + ); + } + } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs index 476aaf3846..2bab4ac2b1 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/DependencyInjection/DefaultConventionalRegistrar.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using JetBrains.Annotations; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -53,96 +49,5 @@ namespace Volo.Abp.DependencyInjection } } } - - protected virtual List GetExposedServiceTypes(Type type) - { - return ExposedServiceExplorer.GetExposedServices(type); - } - - protected virtual ServiceDescriptor CreateServiceDescriptor( - Type implementationType, - Type exposingServiceType, - List allExposingServiceTypes, - ServiceLifetime lifeTime) - { - if (lifeTime.IsIn(ServiceLifetime.Singleton, ServiceLifetime.Scoped)) - { - var redirectedType = GetRedirectedTypeOrNull( - implementationType, - exposingServiceType, - allExposingServiceTypes - ); - - if (redirectedType != null) - { - return ServiceDescriptor.Describe( - exposingServiceType, - provider => provider.GetService(redirectedType), - lifeTime - ); - } - } - - return ServiceDescriptor.Describe( - exposingServiceType, - implementationType, - lifeTime - ); - } - - protected virtual Type GetRedirectedTypeOrNull( - Type implementationType, - Type exposingServiceType, - List allExposingServiceTypes) - { - if (allExposingServiceTypes.Count < 2) - { - return null; - } - - if (exposingServiceType == implementationType) - { - return null; - } - - if (allExposingServiceTypes.Contains(implementationType)) - { - return implementationType; - } - - return allExposingServiceTypes.FirstOrDefault( - t => t != exposingServiceType && exposingServiceType.IsAssignableFrom(t) - ); - } - - protected virtual DependencyAttribute GetDependencyAttributeOrNull(Type type) - { - return type.GetCustomAttribute(true); - } - - protected virtual ServiceLifetime? GetLifeTimeOrNull(Type type, [CanBeNull] DependencyAttribute dependencyAttribute) - { - return dependencyAttribute?.Lifetime ?? GetServiceLifetimeFromClassHierarchy(type); - } - - protected virtual ServiceLifetime? GetServiceLifetimeFromClassHierarchy(Type type) - { - if (typeof(ITransientDependency).GetTypeInfo().IsAssignableFrom(type)) - { - return ServiceLifetime.Transient; - } - - if (typeof(ISingletonDependency).GetTypeInfo().IsAssignableFrom(type)) - { - return ServiceLifetime.Singleton; - } - - if (typeof(IScopedDependency).GetTypeInfo().IsAssignableFrom(type)) - { - return ServiceLifetime.Scoped; - } - - return null; - } } } diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/AbpRepositoryConventionalRegistrar.cs b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/AbpRepositoryConventionalRegistrar.cs index f7b9527aa0..0b489bfcf3 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/AbpRepositoryConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo/Abp/Domain/Repositories/AbpRepositoryConventionalRegistrar.cs @@ -15,12 +15,7 @@ namespace Volo.Abp.Domain.Repositories protected override bool IsConventionalRegistrationDisabled(Type type) { - if (!typeof(IRepository).IsAssignableFrom(type)) - { - return true; - } - - return base.IsConventionalRegistrationDisabled(type); + return !typeof(IRepository).IsAssignableFrom(type) || base.IsConventionalRegistrationDisabled(type); } protected override List GetExposedServiceTypes(Type type) @@ -35,10 +30,9 @@ namespace Volo.Abp.Domain.Repositories .ToList(); } - protected override ServiceLifetime? GetServiceLifetimeFromClassHierarchy(Type type) + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) { - return base.GetServiceLifetimeFromClassHierarchy(type) ?? - ServiceLifetime.Transient; + return ServiceLifetime.Transient; } } } diff --git a/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs b/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs index d51e4728ca..b4f56edc7d 100644 --- a/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.FluentValidation/Volo/Abp/FluentValidation/AbpFluentValidationConventionalRegistrar.cs @@ -1,39 +1,31 @@ using System; using System.Collections.Generic; +using System.Linq; using FluentValidation; using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; namespace Volo.Abp.FluentValidation { - public class AbpFluentValidationConventionalRegistrar : ConventionalRegistrarBase + public class AbpFluentValidationConventionalRegistrar : DefaultConventionalRegistrar { - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (IsConventionalRegistrationDisabled(type)) - { - return; - } + return !type.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IValidator<>)) || + base.IsConventionalRegistrationDisabled(type); + } - if (!typeof(IValidator).IsAssignableFrom(type)) - { - return; - } + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return ServiceLifetime.Transient; + } - var validatingType = GetFirstGenericArgumentOrNull(type, 1); - if (validatingType == null) + protected override List GetExposedServiceTypes(Type type) + { + return new List() { - return; - } - - var serviceType = typeof(IValidator<>).MakeGenericType(validatingType); - - TriggerServiceExposing(services, type, new List{ serviceType }); - - services.AddTransient( - serviceType, - type - ); + typeof(IValidator<>).MakeGenericType(GetFirstGenericArgumentOrNull(type, 1)) + }; } private static Type GetFirstGenericArgumentOrNull(Type type, int depth) diff --git a/framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs b/framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs index 15fbb4f60c..e7c205a962 100644 --- a/framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs +++ b/framework/src/Volo.Abp.HangFire/Volo/Abp/Hangfire/AbpHangfireAuthorizationFilter.cs @@ -9,16 +9,18 @@ namespace Volo.Abp.Hangfire { public class AbpHangfireAuthorizationFilter : IDashboardAsyncAuthorizationFilter { + private readonly bool _enableTenant; private readonly string _requiredPermissionName; - public AbpHangfireAuthorizationFilter(string requiredPermissionName = null) + public AbpHangfireAuthorizationFilter(bool enableTenant = false, string requiredPermissionName = null) { + _enableTenant = requiredPermissionName.IsNullOrWhiteSpace() ? enableTenant : true; _requiredPermissionName = requiredPermissionName; } public async Task AuthorizeAsync(DashboardContext context) { - if (!IsLoggedIn(context)) + if (!IsLoggedIn(context, _enableTenant)) { return false; } @@ -31,9 +33,15 @@ namespace Volo.Abp.Hangfire return await IsPermissionGrantedAsync(context, _requiredPermissionName); } - private static bool IsLoggedIn(DashboardContext context) + private static bool IsLoggedIn(DashboardContext context, bool enableTenant) { var currentUser = context.GetHttpContext().RequestServices.GetRequiredService(); + + if (!enableTenant) + { + return currentUser.IsAuthenticated && !currentUser.TenantId.HasValue; + } + return currentUser.IsAuthenticated; } diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs new file mode 100644 index 0000000000..c386b3cc9f --- /dev/null +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/DynamicJavaScriptProxyOptions.cs @@ -0,0 +1,24 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery +{ + public class DynamicJavaScriptProxyOptions + { + public HashSet DisabledModules { get; } + + public DynamicJavaScriptProxyOptions() + { + DisabledModules = new HashSet(); + } + + public void DisableModule(string module) + { + DisabledModules.AddIfNotContains(module); + } + + public void EnableModule(string module) + { + DisabledModules.Remove(module); + } + } +} diff --git a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs index 46a657c4a4..145cc9ca6b 100644 --- a/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs +++ b/framework/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; using Volo.Abp.Http.Modeling; @@ -19,6 +20,13 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery /// public const string Name = "jquery"; + private readonly DynamicJavaScriptProxyOptions _dynamicJavaScriptProxyOptions; + + public JQueryProxyScriptGenerator(IOptions dynamicJavaScriptProxyOptions) + { + _dynamicJavaScriptProxyOptions = dynamicJavaScriptProxyOptions.Value; + } + public string CreateScript(ApplicationApiDescriptionModel model) { var script = new StringBuilder(); @@ -26,10 +34,15 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery script.AppendLine("/* This file is automatically generated by ABP framework to use MVC Controllers from javascript. */"); script.AppendLine(); - foreach (var module in model.Modules.Values) + foreach (var module in model.Modules) { + if (!ShouldCreateModuleScript(module)) + { + continue; + } + script.AppendLine(); - AddModuleScript(script, module); + AddModuleScript(script, module.Value); } AddInitializedEventTrigger(script); @@ -37,6 +50,16 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery return script.ToString(); } + private bool ShouldCreateModuleScript(KeyValuePair module) + { + if (_dynamicJavaScriptProxyOptions.DisabledModules.Contains(module.Key)) + { + return false; + } + + return true; + } + private static void AddModuleScript(StringBuilder script, ModuleApiDescriptionModel module) { //TODO: Eleminate repeating module.RootPath.Replace("/", ".").ToCamelCase() ! diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/AbpMongoDbConventionalRegistrar.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/AbpMongoDbConventionalRegistrar.cs index e0a6265f7c..4d10d7c030 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/AbpMongoDbConventionalRegistrar.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DependencyInjection/AbpMongoDbConventionalRegistrar.cs @@ -1,29 +1,28 @@ using System; -using System.Reflection; +using System.Collections.Generic; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using Volo.Abp.DependencyInjection; namespace Volo.Abp.MongoDB.DependencyInjection { public class AbpMongoDbConventionalRegistrar : DefaultConventionalRegistrar { - public override void AddType(IServiceCollection services, Type type) + protected override bool IsConventionalRegistrationDisabled(Type type) { - if (!typeof(IAbpMongoDbContext).IsAssignableFrom(type) || type == typeof(AbpMongoDbContext)) - { - return; - } - - var dependencyAttribute = GetDependencyAttributeOrNull(type); - var lifeTime = GetLifeTimeOrNull(type, dependencyAttribute); + return !typeof(IAbpMongoDbContext).IsAssignableFrom(type) || type == typeof(AbpMongoDbContext) || base.IsConventionalRegistrationDisabled(type); + } - if (lifeTime == null) + protected override List GetExposedServiceTypes(Type type) + { + return new List() { - return; - } + typeof(IAbpMongoDbContext) + }; + } - services.Add(ServiceDescriptor.Describe(typeof(IAbpMongoDbContext), type, ServiceLifetime.Transient)); + protected override ServiceLifetime? GetDefaultLifeTimeOrNull(Type type) + { + return ServiceLifetime.Transient; } } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json index 37b538ce89..1f3cfc4842 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "حفظ...", "Actions": "أجراءات", "Delete": "حذف", + "SuccessfullyDeleted": "تم الحذف بنجاح", "Edit": "تعديل", "Refresh": "تحديث", "Language": "لغة", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json index 85cf515095..fff10066f6 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json @@ -12,6 +12,7 @@ "SavingWithThreeDot": "Ukládám...", "Actions": "Akce", "Delete": "Smazat", + "SuccessfullyDeleted": "Úspěšně smazáno", "Edit": "Upravit", "Refresh": "Obnovit", "Language": "Jazyk", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de-DE.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de-DE.json index 2ab3dd90e9..071ac2eb3d 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de-DE.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de-DE.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Speichern...", "Actions": "Aktionen", "Delete": "Löschen", + "SuccessfullyDeleted": "Erfolgreich gelöscht", "Edit": "Bearbeiten", "Refresh": "Aktualisieren", "Language": "Sprache", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json index 64bb0f99b5..bb15e170bb 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json @@ -12,6 +12,7 @@ "SavingWithThreeDot": "Speichere...", "Actions": "Aktionen", "Delete": "Löschen", + "SuccessfullyDeleted": "Erfolgreich gelöscht", "Edit": "Bearbeiten", "Refresh": "Aktualisieren", "Language": "Sprache", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json index b0d0922089..a26c5ddf9e 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Saving", "Actions": "Actions", "Delete": "Delete", + "SuccessfullyDeleted": "Successfully deleted", "Edit": "Edit", "Refresh": "Refresh", "Language": "Language", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json index 72c53e8adf..2a22849731 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Saving...", "Actions": "Actions", "Delete": "Delete", + "SuccessfullyDeleted": "Successfully deleted", "Edit": "Edit", "Refresh": "Refresh", "Language": "Language", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json index a39984fdbf..f2b40a785b 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Guardando...", "Actions": "Opciones", "Delete": "Borrar", + "SuccessfullyDeleted": "Eliminado con éxito", "Edit": "Editar", "Refresh": "Actualizar", "Language": "Idioma", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json index 77ff9247ce..1952de8822 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Tallentaa...", "Actions": "Toiminnot", "Delete": "Poistaa", + "SuccessfullyDeleted": "Poistettu onnistuneesti", "Edit": "Muokata", "Refresh": "virkistää", "Language": "Kieli", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json index c27708ee09..7504de8acc 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Enregistrement...", "Actions": "Actions", "Delete": "Supprimer", + "SuccessfullyDeleted": "Supprimé avec succès", "Edit": "Modifier", "Refresh": "Actualiser", "Language": "Langue", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json index 6ccee95a76..2c451bc797 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "सहेजा जा रहा है...", "Actions": "कार्रवाई", "Delete": "हटाएं", + "SuccessfullyDeleted": "सफलतापूर्वक हटा दिया गया", "Edit": "संपादित करें", "Refresh": "ताज़ा करना", "Language": "भाषा: हिन्दी", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json index ed63fb50d0..595e2f8b62 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Mentés...", "Actions": "Műveletek", "Delete": "Törlés", + "SuccessfullyDeleted": "Sikeresen törölve", "Edit": "Szerkesztés", "Refresh": "Frissítés", "Language": "Nyelv", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json index d4b37bbbb1..3c4328619e 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json @@ -13,12 +13,13 @@ "SavingWithThreeDot": "Salvataggio...", "Actions": "Azioni", "Delete": "Elimina", + "SuccessfullyDeleted": "Eliminato con successo", "Edit": "Modifica", "Refresh": "Ricarica", "Language": "Lingua", "LoadMore": "Carica altro", - "ProcessingWithThreeDot": "In lavorazione...", - "LoadingWithThreeDot": "Caricamento in corso...", + "ProcessingWithThreeDot": "Elaborazione...", + "LoadingWithThreeDot": "Caricamento...", "Welcome": "Benvenuto", "Login": "Accedi", "Register": "Registrati", @@ -28,16 +29,16 @@ "PagerSearch": "Ricerca", "PagerNext": "Successivo", "PagerPrevious": "Precedente", - "PagerFirst": "Primo", - "PagerLast": "Ultimo", - "PagerInfo": "Visualizzazione da _START_ a _END_ di _TOTAL_ voci", - "PagerInfo{0}{1}{2}": "Visualizzazione da {0} a {1} di {2} voci", - "PagerInfoEmpty": "Mostra da 0 a 0 di 0 voci", - "PagerInfoFiltered": "(filtrato da _MAX_ voci totali)", + "PagerFirst": "Inizio", + "PagerLast": "Fine", + "PagerInfo": "_START_ - _END_ di _TOTAL_", + "PagerInfo{0}{1}{2}": "{0} - {1} di {2}", + "PagerInfoEmpty": "Risultati da 0 a 0 di 0 elementi", + "PagerInfoFiltered": "(filtrati da _MAX_ elementi totali)", "NoDataAvailableInDatatable": "Nessun dato disponibile", "Total": "Totale", "Selected": "Selezionato", - "PagerShowMenuEntries": "Mostra voci _MENU_", + "PagerShowMenuEntries": "Righe per pagina _MENU_", "DatatableActionDropdownDefaultText": "Azioni", "ChangePassword": "Cambia la password", "PersonalInfo": "Il mio profilo", @@ -45,8 +46,8 @@ "GoHomePage": "Vai alla home page", "GoBack": "Torna indietro", "Search": "Ricerca", - "ItemWillBeDeletedMessageWithFormat": "{0} verrà eliminato!", + "ItemWillBeDeletedMessageWithFormat": "{0} sarà eliminato!", "ItemWillBeDeletedMessage": "Questo elemento sarà eliminato!", "ManageYourAccount": "Gestisci il tuo account" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json index a85e443bdf..d23d2356b4 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Opslaan...", "Actions": "Acties", "Delete": "Verwijder", + "SuccessfullyDeleted": "Succesvol verwijderd", "Edit": "Bewerk", "Refresh": "Ververs", "Language": "Taal", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json index 7c6738e0bd..9e57e64ccc 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json @@ -10,6 +10,7 @@ "SavingWithThreeDot": "Zapisywanie...", "Actions": "Akcje", "Delete": "Usuń", + "SuccessfullyDeleted": "Pomyślnie usunięto", "Edit": "Edytuj", "Refresh": "Odśwież", "ProcessingWithThreeDot": "Procesowanie...", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json index 0aa20797c9..189c2abf21 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json @@ -10,6 +10,7 @@ "SavingWithThreeDot": "Salvando...", "Actions": "Ações", "Delete": "Excluir", + "SuccessfullyDeleted": "Excluído com sucesso", "Edit": "Editar", "Refresh": "Refrescar", "ProcessingWithThreeDot": "Processando...", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json index b7562858d6..94e56a66f3 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Se salvează...", "Actions": "Acţiuni", "Delete": "Şterge", + "SuccessfullyDeleted": "Șters cu succes", "Edit": "Editează", "Refresh": "Reîncarcă", "Language": "Limba", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json index 7b4014ebef..165fc49dcc 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json @@ -12,6 +12,7 @@ "SavingWithThreeDot": "Сохранение...", "Actions": "Действия", "Delete": "Удалить", + "SuccessfullyDeleted": "Успешно удалено", "Edit": "Редактировать", "Refresh": "Обновить", "Language": "Язык", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json index e904e8c8cc..59b2628310 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Úkladanie...", "Actions": "Akcie", "Delete": "Odstrániť", + "SuccessfullyDeleted": "Úspešne odstránené", "Edit": "Upraviť", "Refresh": "Obnoviť", "Language": "Jazyk", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json index 2b285d97e4..792171a969 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json @@ -12,6 +12,7 @@ "SavingWithThreeDot": "Shranjujem...", "Actions": "Dejanja", "Delete": "Izbriši", + "SuccessfullyDeleted": "Uspešno izbrisano", "Edit": "Uredi", "Refresh": "Osveži", "Language": "Jezik", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json index 4b18037f92..67ae56793a 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "Kaydediliyor...", "Actions": "İşlemler", "Delete": "Sil", + "SuccessfullyDeleted": "Başarıyla silindi", "Edit": "Düzenle", "Refresh": "Yenile", "Language": "Dil", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json index 239622e438..fb68e9faf7 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json @@ -10,6 +10,7 @@ "SavingWithThreeDot": "Đang lưu...", "Actions": "Hành động", "Delete": "Xóa", + "SuccessfullyDeleted": "Đã xóa thành công", "Edit": "Sửa", "Refresh": "Làm mới", "ProcessingWithThreeDot": "Đang xử lý...", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json index 96c49401ea..680da56e96 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "保存中...", "Actions": "操作", "Delete": "删除", + "SuccessfullyDeleted": "删除成功", "Edit": "编辑", "Refresh": "刷新", "Language": "语言", diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json index ab529791be..5f73fa7ccd 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json @@ -13,6 +13,7 @@ "SavingWithThreeDot": "保存中...", "Actions": "操作", "Delete": "刪除", + "SuccessfullyDeleted": "刪除成功", "Edit": "修改", "Refresh": "更新", "Language": "語言", diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/NumericValueValidator.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/NumericValueValidator.cs index e1b1972258..b4b7c54fb1 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/NumericValueValidator.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/StringValues/NumericValueValidator.cs @@ -20,7 +20,8 @@ namespace Volo.Abp.Validation.StringValues public NumericValueValidator() { - + MinValue = int.MinValue; + MaxValue = int.MaxValue; } public NumericValueValidator(int minValue = int.MinValue, int maxValue = int.MaxValue) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs index 46f2823b70..805b1550e1 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using System.Linq; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; @@ -26,15 +23,35 @@ namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection services.AddTypes(typeof(My_Test_PageModel), typeof(My_Test_Controller), typeof(My_Test_ViewComponent)); //Assert - services.ShouldContainTransient(typeof(My_Test_PageModel)); - services.ShouldContainTransient(typeof(My_Test_Controller)); - services.ShouldContainTransient(typeof(My_Test_ViewComponent)); + services.ShouldContainTransient(typeof(My_Test_PageModel)); + services.ShouldContainTransient(typeof(My_Test_Controller)); + services.ShouldContainTransient(typeof(My_Test_ViewComponent)); var serviceProvider = services.BuildServiceProvider(); serviceProvider.GetServices().Count().ShouldBe(1); serviceProvider.GetServices().Count().ShouldBe(1); serviceProvider.GetServices().Count().ShouldBe(1); } + + [Fact] + public void Should_Replace_Registered_Mvc_Service() + { + //Arrange + var services = new ServiceCollection(); + + //Act + services.AddConventionalRegistrar(new DefaultConventionalRegistrar()); + services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar()); + + services.AddTypes(typeof(My_Second_Test_ViewComponent), typeof(My_Third_Test_ViewComponent)); + + //Assert + services.ShouldContainTransient(typeof(My_Second_Test_ViewComponent), typeof(My_Third_Test_ViewComponent)); + services.ShouldNotContainService(typeof(My_Third_Test_ViewComponent)); + + var serviceProvider = services.BuildServiceProvider(); + serviceProvider.GetServices().Count().ShouldBe(1); + } } public class My_Test_PageModel : PageModel @@ -49,6 +66,15 @@ namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection public class My_Test_ViewComponent : ViewComponent { + } + public class My_Second_Test_ViewComponent : ViewComponent + { + } + + [Dependency(ReplaceServices = true)] + [ExposeServices(typeof(My_Second_Test_ViewComponent))] + public class My_Third_Test_ViewComponent : My_Second_Test_ViewComponent + { } } diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectNameValidation_Tests.cs b/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectNameValidation_Tests.cs index a1557e68ce..d346ce6227 100644 --- a/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectNameValidation_Tests.cs +++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectNameValidation_Tests.cs @@ -38,14 +38,6 @@ namespace Volo.Abp.Cli } } - [Fact] - public async Task Parent_Directory_Char_Contains_Test() - { - - var args = new CommandLineArgs("new", "Test..Test"); - await _newCommand.ExecuteAsync(args).ShouldThrowAsync(); - } - [Fact] public async Task Contains_Illegal_Keyword_Test() { diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectVersionParse_Tests.cs b/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectVersionParse_Tests.cs index eb4a9eda24..20e870dfe9 100644 --- a/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectVersionParse_Tests.cs +++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/ProjectVersionParse_Tests.cs @@ -36,7 +36,7 @@ namespace Volo.Abp.Cli "" + ""; - var success = SolutionAbpVersionFinder.TryParseVersionFromCsprojFile(csprojContent, out var version); + var success = SolutionPackageVersionFinder.TryParseVersionFromCsprojFile(csprojContent, out var version); success.ShouldBe(true); version.ShouldBe("4.4.0-rc.1"); } @@ -58,7 +58,7 @@ namespace Volo.Abp.Cli "" + ""; - var success = SolutionAbpVersionFinder.TryParseSemanticVersionFromCsprojFile(csprojContent, out var version); + var success = SolutionPackageVersionFinder.TryParseSemanticVersionFromCsprojFile(csprojContent, out var version); success.ShouldBe(true); version.Major.ShouldBe(12); version.Minor.ShouldBe(8); diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbConventionalRegistrar_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbConventionalRegistrar_Tests.cs new file mode 100644 index 0000000000..61adb0c8a5 --- /dev/null +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/AbpMongoDbConventionalRegistrar_Tests.cs @@ -0,0 +1,24 @@ +using Microsoft.Extensions.DependencyInjection; +using Shouldly; +using Volo.Abp.MongoDB.TestApp.FourthContext; +using Volo.Abp.MongoDB.TestApp.SecondContext; +using Volo.Abp.MongoDB.TestApp.ThirdDbContext; +using Volo.Abp.TestApp.MongoDB; +using Xunit; + +namespace Volo.Abp.MongoDB +{ + [Collection(MongoTestCollection.Name)] + public class AbpMongoDbConventionalRegistrar_Tests : MongoDbTestBase + { + [Fact] + public void All_AbpMongoDbContext_Should_Exposed_IAbpMongoDbContext_Service() + { + var abpMongoDbContext = ServiceProvider.GetServices(); + abpMongoDbContext.ShouldContain(x => x is TestAppMongoDbContext); + abpMongoDbContext.ShouldContain(x => x is SecondDbContext); + abpMongoDbContext.ShouldContain(x => x is ThirdDbContext); + abpMongoDbContext.ShouldContain(x => x is FourthDbContext); + } + } +} diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/HybridTemplateRendererProvider_Tests.cs b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/HybridTemplateRendererProvider_Tests.cs index f6fffc89a7..2d00ee87d8 100644 --- a/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/HybridTemplateRendererProvider_Tests.cs +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo/Abp/TextTemplating/HybridTemplateRendererProvider_Tests.cs @@ -1,5 +1,6 @@ using System.Threading.Tasks; using Shouldly; +using Volo.Abp.Localization; using Xunit; namespace Volo.Abp.TextTemplating @@ -16,25 +17,31 @@ namespace Volo.Abp.TextTemplating [Fact] public async Task Should_Render_By_Scriban() { - (await _templateRenderer.RenderAsync( - TestTemplates.HybridTemplateScriban, - model: new - { - name = "John" - } - )).ShouldBe("Hello John, how are you?"); + using (CultureHelper.Use("en")) + { + (await _templateRenderer.RenderAsync( + TestTemplates.HybridTemplateScriban, + model: new + { + name = "John" + } + )).ShouldBe("Hello John, how are you?"); + } } [Fact] public async Task Should_Render_By_Razor() { - (await _templateRenderer.RenderAsync( - TestTemplates.HybridTemplateRazor, - model: new HybridModel - { - Name = "John" - } - )).ShouldBe("Hello John, how are you?"); + using (CultureHelper.Use("en")) + { + (await _templateRenderer.RenderAsync( + TestTemplates.HybridTemplateRazor, + model: new HybridModel + { + Name = "John" + } + )).ShouldBe("Hello John, how are you?"); + } } public class HybridModel diff --git a/modules/account/Volo.Abp.Account.sln b/modules/account/Volo.Abp.Account.sln index b96627aac9..019ed12315 100644 --- a/modules/account/Volo.Abp.Account.sln +++ b/modules/account/Volo.Abp.Account.sln @@ -23,6 +23,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Applicatio EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Blazor", "src\Volo.Abp.Account.Blazor\Volo.Abp.Account.Blazor.csproj", "{EE8858B3-A638-481B-8EB9-74F5E7D43D80}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Installer", "src\Volo.Abp.Account.Installer\Volo.Abp.Account.Installer.csproj", "{EAAB416C-9113-486D-9B54-4DCF78FDC6AB}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -61,6 +63,10 @@ Global {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Debug|Any CPU.Build.0 = Debug|Any CPU {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Release|Any CPU.ActiveCfg = Release|Any CPU {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Release|Any CPU.Build.0 = Release|Any CPU + {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -74,6 +80,7 @@ Global {7BCA5955-B3F6-41E8-9D5D-D115195C6098} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E} {356EAC51-5D55-4852-A8A5-2F90EAC8DAE3} = {12FAE513-7575-4235-89DF-277BA1A3B098} {EE8858B3-A638-481B-8EB9-74F5E7D43D80} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E} + {EAAB416C-9113-486D-9B54-4DCF78FDC6AB} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {2B054393-D2B2-4EA8-8A15-D60CBCF3E7A9} diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/AccountRemoteServiceConsts.cs b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/AccountRemoteServiceConsts.cs index 43e5ca15fa..5db786f105 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/AccountRemoteServiceConsts.cs +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/AccountRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public static class AccountRemoteServiceConsts { public const string RemoteServiceName = "AbpAccount"; + + public const string ModuleName = "account"; } -} \ No newline at end of file +} diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/ChangePasswordInput.cs b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ChangePasswordInput.cs similarity index 91% rename from modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/ChangePasswordInput.cs rename to modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ChangePasswordInput.cs index 04f7879f15..d790d7e0f1 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/ChangePasswordInput.cs +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ChangePasswordInput.cs @@ -1,8 +1,9 @@ using System.ComponentModel.DataAnnotations; using Volo.Abp.Auditing; +using Volo.Abp.Identity; using Volo.Abp.Validation; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { public class ChangePasswordInput { diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IProfileAppService.cs b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/IProfileAppService.cs similarity index 85% rename from modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IProfileAppService.cs rename to modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/IProfileAppService.cs index 15d20e551e..6272ce11e0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IProfileAppService.cs +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/IProfileAppService.cs @@ -1,7 +1,8 @@ using System.Threading.Tasks; using Volo.Abp.Application.Services; +using Volo.Abp.Identity; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { public interface IProfileAppService : IApplicationService { diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json index f63a05e00c..a6ed1f5f6c 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/Localization/Resources/it.json @@ -5,14 +5,14 @@ "EmailAddress": "Indirizzo e-mail", "UserNameOrEmailAddress": "Username o Indirizzo e-mail", "Password": "Password", - "RememberMe": "Ricordati di me", + "RememberMe": "Ricordami", "UseAnotherServiceToLogin": "Usa un altro servizio per accedere", "UserLockedOutMessage": "L'account utente è stato bloccato a causa di troppi tentativi di accesso non validi. Attendi qualche istante e riprova.", "InvalidUserNameOrPassword": "Username o password non validi!", "LoginIsNotAllowed": "Non sei autorizzato ad accedere! Il tuo account non è attivo o devi confermare la tua e-mail/numero di telefono.", "SelfRegistrationDisabledMessage": "L'auto-registrazione è disabilitata per questa applicazione. Contatta l'amministratore dell'applicazione per richiedere la registrazione.", "LocalLoginDisabledMessage": "L'accesso locale è disabilitato per questa applicazione.", - "Login": "Login", + "Login": "Accedi", "Cancel": "Annulla", "Register": "Registrati", "AreYouANewUser": "Sei un nuovo utente?", @@ -23,7 +23,7 @@ "DisplayName:CurrentPassword": "Password attuale", "DisplayName:NewPassword": "Nuova password", "DisplayName:NewPasswordConfirm": "Conferma la nuova password", - "PasswordChangedMessage": "La tua password è stata cambiata con successo.", + "PasswordChangedMessage": "La tua password è stata modificata con successo.", "DisplayName:UserName": "Nome utente", "DisplayName:Email": "E-mail", "DisplayName:Name": "Nome", @@ -38,16 +38,16 @@ "Manage": "Gestire", "MyAccount": "Il mio account", "DisplayName:Abp.Account.IsSelfRegistrationEnabled": "L'auto-registrazione è abilitata", - "Description:Abp.Account.IsSelfRegistrationEnabled": "Indica se un utente può registrare l'account da solo.", + "Description:Abp.Account.IsSelfRegistrationEnabled": "Indica se un utente può effettuare la registrazione da solo.", "DisplayName:Abp.Account.EnableLocalLogin": "Autenticazione con un account locale", "Description:Abp.Account.EnableLocalLogin": "Indica se il server consentirà agli utenti di autenticarsi con un account locale.", "LoggedOutTitle": "Disconnesso", - "LoggedOutText": "Sei stato disconnesso e verrai reindirizzato presto.", - "ReturnToText": "Fai clic qui per reindirizzare a {0}", + "LoggedOutText": "Sei stato disconnesso e verrai reindirizzato a momenti.", + "ReturnToText": "Fai clic qui per essere reindirizzato a {0}", "OrLoginWith": "Oppure accedi con:", - "ForgotPassword": "Ha dimenticato la password?", + "ForgotPassword": "Password dimenticata?", "SendPasswordResetLink_Information": "Un link per reimpostare la password verrà inviato alla tua e-mail. Se non ricevi l'e-mail entro pochi minuti, riprova.", - "PasswordResetMailSentMessage": "E-mail di recupero dell'account inviata al tuo indirizzo e-mail. Se non vedi questa e-mail nella tua posta in arrivo entro 15 minuti, cercala nella cartella della posta indesiderata. Se lo trovi lì, contrassegnalo come -Non Junk-.", + "PasswordResetMailSentMessage": "E-mail di recupero dell'account inviata al tuo indirizzo e-mail. Se non vedi questa e-mail nella tua posta in arrivo entro 15 minuti, cercala tra la posta indesiderata e in tal caso, contrassegna il messaggio come -No SPAM-.", "ResetPassword": "Resetta la password", "ConfirmPassword": "Conferma (ripeti) la password", "ResetPassword_Information": "Per favore inserisci la tua nuova password.", @@ -57,7 +57,7 @@ "ProfileTab:Password": "Cambia la password", "ProfileTab:PersonalInfo": "Informazioni personali", "ReturnToApplication": "Torna all'applicazione", - "Volo.Account:InvalidEmailAddress": "Impossibile trovare l'indirizzo e-mail fornito: {0}", + "Volo.Account:InvalidEmailAddress": "Impossibile trovare l'indirizzo e-mail: {0}", "PasswordReset": "Reimpostazione della password", "PasswordResetInfoInEmail": "Abbiamo ricevuto una richiesta di recupero dell'account! Se hai fatto tu questa richiesta fai clic sul seguente collegamento per reimpostare la password.", "ResetMyPassword": "Reimposta la mia password", diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/ProfileDto.cs b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ProfileDto.cs similarity index 94% rename from modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/ProfileDto.cs rename to modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ProfileDto.cs index 659954ae8a..fa987f0def 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/ProfileDto.cs +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/ProfileDto.cs @@ -1,7 +1,7 @@ using Volo.Abp.Domain.Entities; using Volo.Abp.ObjectExtending; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { public class ProfileDto : ExtensibleObject, IHasConcurrencyStamp { diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UpdateProfileDto.cs b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/UpdateProfileDto.cs similarity index 89% rename from modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UpdateProfileDto.cs rename to modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/UpdateProfileDto.cs index 9ebf54ba5e..5eafc8cf98 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/UpdateProfileDto.cs +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo/Abp/Account/UpdateProfileDto.cs @@ -1,9 +1,8 @@ -using System.ComponentModel.DataAnnotations; -using Volo.Abp.Domain.Entities; +using Volo.Abp.Identity; using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { public class UpdateProfileDto : ExtensibleObject { @@ -24,4 +23,4 @@ namespace Volo.Abp.Identity public string ConcurrencyStamp { get; set; } } -} \ No newline at end of file +} diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs index 2130c52a12..418b88ddb2 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs +++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs @@ -1,4 +1,5 @@ -using Volo.Abp.Emailing; +using Volo.Abp.AutoMapper; +using Volo.Abp.Emailing; using Volo.Abp.Identity; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; @@ -22,6 +23,11 @@ namespace Volo.Abp.Account options.FileSets.AddEmbedded(); }); + Configure(options => + { + options.AddProfile(validate: true); + }); + Configure(options => { options.Applications["MVC"].Urls[AccountUrlNames.PasswordReset] = "Account/ResetPassword"; diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModuleAutoMapperProfile.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModuleAutoMapperProfile.cs new file mode 100644 index 0000000000..604b7ab89c --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModuleAutoMapperProfile.cs @@ -0,0 +1,16 @@ +using AutoMapper; +using Volo.Abp.Identity; + +namespace Volo.Abp.Account +{ + public class AbpAccountApplicationModuleAutoMapperProfile : Profile + { + public AbpAccountApplicationModuleAutoMapperProfile() + { + CreateMap() + .ForMember(dest => dest.HasPassword, + op => op.MapFrom(src => src.PasswordHash != null)) + .MapExtraProperties(); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs similarity index 97% rename from modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs rename to modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs index c722a43904..89e5bd74da 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/ProfileAppService.cs +++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/ProfileAppService.cs @@ -1,16 +1,17 @@ using System; -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Options; using Volo.Abp.Data; +using Volo.Abp.Identity; using Volo.Abp.Identity.Settings; +using Volo.Abp.Settings; using Volo.Abp.ObjectExtending; using Volo.Abp.Settings; using Volo.Abp.Users; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { [Authorize] public class ProfileAppService : IdentityAppServiceBase, IProfileAppService diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/ProfileClientProxy.Generated.cs b/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/ProfileClientProxy.Generated.cs similarity index 96% rename from modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/ProfileClientProxy.Generated.cs rename to modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/ProfileClientProxy.Generated.cs index aac071ecb2..794c5a3557 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/ProfileClientProxy.Generated.cs +++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/ProfileClientProxy.Generated.cs @@ -9,7 +9,7 @@ using Volo.Abp.Http.Client.ClientProxying; using Volo.Abp.Identity; // ReSharper disable once CheckNamespace -namespace Volo.Abp.Identity.ClientProxies +namespace Volo.Abp.Account.ClientProxies { [Dependency(ReplaceServices = true)] [ExposeServices(typeof(IProfileAppService), typeof(ProfileClientProxy))] diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/ProfileClientProxy.cs b/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/ProfileClientProxy.cs similarity index 80% rename from modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/ProfileClientProxy.cs rename to modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/ProfileClientProxy.cs index ccf808ca06..32232daffb 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/ProfileClientProxy.cs +++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/ProfileClientProxy.cs @@ -1,6 +1,6 @@ // This file is part of ProfileClientProxy, you can customize it here // ReSharper disable once CheckNamespace -namespace Volo.Abp.Identity.ClientProxies +namespace Volo.Abp.Account.ClientProxies { public partial class ProfileClientProxy { diff --git a/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/account-generate-proxy.json b/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/account-generate-proxy.json index f6d97dbc59..c6152dbd74 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/account-generate-proxy.json +++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/ClientProxies/account-generate-proxy.json @@ -223,9 +223,110 @@ "implementFrom": "Volo.Abp.Account.Web.Areas.Account.Controllers.AccountController" } } + }, + "Volo.Abp.Account.ProfileController": { + "controllerName": "Profile", + "controllerGroupName": "Profile", + "type": "Volo.Abp.Account.ProfileController", + "interfaces": [ + { + "type": "Volo.Abp.Account.IProfileAppService" + } + ], + "actions": { + "GetAsync": { + "uniqueName": "GetAsync", + "name": "GetAsync", + "httpMethod": "GET", + "url": "api/account/my-profile", + "supportedVersions": [], + "parametersOnMethod": [], + "parameters": [], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + }, + "UpdateAsyncByInput": { + "uniqueName": "UpdateAsyncByInput", + "name": "UpdateAsync", + "httpMethod": "PUT", + "url": "api/account/my-profile", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.UpdateProfileDto, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.UpdateProfileDto", + "typeSimple": "Volo.Abp.Account.UpdateProfileDto", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "Volo.Abp.Account.ProfileDto", + "typeSimple": "Volo.Abp.Account.ProfileDto" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + }, + "ChangePasswordAsyncByInput": { + "uniqueName": "ChangePasswordAsyncByInput", + "name": "ChangePasswordAsync", + "httpMethod": "POST", + "url": "api/account/my-profile/change-password", + "supportedVersions": [], + "parametersOnMethod": [ + { + "name": "input", + "typeAsString": "Volo.Abp.Account.ChangePasswordInput, Volo.Abp.Account.Application.Contracts", + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null + } + ], + "parameters": [ + { + "nameOnMethod": "input", + "name": "input", + "jsonName": null, + "type": "Volo.Abp.Account.ChangePasswordInput", + "typeSimple": "Volo.Abp.Account.ChangePasswordInput", + "isOptional": false, + "defaultValue": null, + "constraintTypes": null, + "bindingSourceId": "Body", + "descriptorName": "" + } + ], + "returnValue": { + "type": "System.Void", + "typeSimple": "System.Void" + }, + "allowAnonymous": null, + "implementFrom": "Volo.Abp.Account.IProfileAppService" + } + } } } } }, "types": {} -} \ No newline at end of file +} diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs index 13910ac6ab..adca4ec688 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/AccountController.cs @@ -6,7 +6,7 @@ using Volo.Abp.Identity; namespace Volo.Abp.Account { [RemoteService(Name = AccountRemoteServiceConsts.RemoteServiceName)] - [Area("account")] + [Area(AccountRemoteServiceConsts.ModuleName)] [Route("api/account")] public class AccountController : AbpControllerBase, IAccountAppService { diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/ProfileController.cs b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/ProfileController.cs similarity index 83% rename from modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/ProfileController.cs rename to modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/ProfileController.cs index f16c780d93..47875506e2 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/ProfileController.cs +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo/Abp/Account/ProfileController.cs @@ -2,12 +2,12 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { - [RemoteService(Name = IdentityRemoteServiceConsts.RemoteServiceName)] - [Area("identity")] + [RemoteService(Name = AccountRemoteServiceConsts.RemoteServiceName)] + [Area(AccountRemoteServiceConsts.ModuleName)] [ControllerName("Profile")] - [Route("/api/identity/my-profile")] + [Route("/api/account/my-profile")] public class ProfileController : AbpControllerBase, IProfileAppService { protected IProfileAppService ProfileAppService { get; } diff --git a/modules/account/src/Volo.Abp.Account.Installer/FodyWeavers.xml b/modules/account/src/Volo.Abp.Account.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Installer/FodyWeavers.xsd b/modules/account/src/Volo.Abp.Account.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj b/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj new file mode 100644 index 0000000000..73df3c03d9 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/account/src/Volo.Abp.Account.Installer/Volo/Abp/Account/AbpAccountInstallerModule.cs b/modules/account/src/Volo.Abp.Account.Installer/Volo/Abp/Account/AbpAccountInstallerModule.cs new file mode 100644 index 0000000000..b1569eac6a --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Installer/Volo/Abp/Account/AbpAccountInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.Account +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpAccountInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/account/src/Volo.Abp.Account.Installer/Volo/Abp/Account/AccountInstallerPipelineBuilder.cs b/modules/account/src/Volo.Abp.Account.Installer/Volo/Abp/Account/AccountInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..29f7a147da --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Installer/Volo/Abp/Account/AccountInstallerPipelineBuilder.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.Account +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class AccountInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + return GetBasePipeline(context); + } + } +} diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs index acb48e2943..2c3d2c1332 100644 --- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs +++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs @@ -9,6 +9,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars; using Volo.Abp.AutoMapper; using Volo.Abp.ExceptionHandling; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Identity.AspNetCore; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; @@ -62,6 +63,11 @@ namespace Volo.Abp.Account.Web { options.AddProfile(validate: true); }); + + Configure(options => + { + options.DisableModule(AccountRemoteServiceConsts.ModuleName); + }); } private void ConfigureProfileManagementPage() @@ -82,6 +88,7 @@ namespace Volo.Abp.Account.Web .Configure(typeof(ManageModel).FullName, configuration => { + configuration.AddFiles("/client-proxies/account-proxy.js"); configuration.AddFiles("/Pages/Account/Components/ProfileManagementGroup/Password/Default.js"); configuration.AddFiles("/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/Default.js"); }); diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/AccountProfilePasswordManagementGroupViewComponent.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/AccountProfilePasswordManagementGroupViewComponent.cs index 8bacadfb4a..b2f85a15c9 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/AccountProfilePasswordManagementGroupViewComponent.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/AccountProfilePasswordManagementGroupViewComponent.cs @@ -11,17 +11,17 @@ namespace Volo.Abp.Account.Web.Pages.Account.Components.ProfileManagementGroup.P { public class AccountProfilePasswordManagementGroupViewComponent : AbpViewComponent { - private readonly IProfileAppService _profileAppService; + protected IProfileAppService ProfileAppService { get; } public AccountProfilePasswordManagementGroupViewComponent( IProfileAppService profileAppService) { - _profileAppService = profileAppService; + ProfileAppService = profileAppService; } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var user = await _profileAppService.GetAsync(); + var user = await ProfileAppService.GetAsync(); var model = new ChangePasswordInfoModel { diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js index bc01f152b3..73e29ce20b 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/Password/Default.js @@ -23,7 +23,7 @@ return; } - volo.abp.identity.profile.changePassword(input).then(function (result) { + volo.abp.account.profile.changePassword(input).then(function (result) { abp.message.success(l('PasswordChanged')); }); }); diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/AccountProfilePersonalInfoManagementGroupViewComponent.cs b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/AccountProfilePersonalInfoManagementGroupViewComponent.cs index c9fb2b660e..54b59f17c9 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/AccountProfilePersonalInfoManagementGroupViewComponent.cs +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/AccountProfilePersonalInfoManagementGroupViewComponent.cs @@ -11,19 +11,19 @@ namespace Volo.Abp.Account.Web.Pages.Account.Components.ProfileManagementGroup.P { public class AccountProfilePersonalInfoManagementGroupViewComponent : AbpViewComponent { - private readonly IProfileAppService _profileAppService; + protected IProfileAppService ProfileAppService { get; } public AccountProfilePersonalInfoManagementGroupViewComponent( IProfileAppService profileAppService) { - _profileAppService = profileAppService; + ProfileAppService = profileAppService; ObjectMapperContext = typeof(AbpAccountWebModule); } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var user = await _profileAppService.GetAsync(); + var user = await ProfileAppService.GetAsync(); var model = ObjectMapper.Map(user); diff --git a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/Default.js b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/Default.js index 11fbf97063..3422b36d63 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/Default.js +++ b/modules/account/src/Volo.Abp.Account.Web/Pages/Account/Components/ProfileManagementGroup/PersonalInfo/Default.js @@ -11,7 +11,7 @@ var input = $('#PersonalSettingsForm').serializeFormToObject(); - volo.abp.identity.profile.update(input).then(function (result) { + volo.abp.account.profile.update(input).then(function (result) { abp.notify.success(l('PersonalSettingsSaved')); }); }); diff --git a/modules/account/src/Volo.Abp.Account.Web/wwwroot/client-proxies/account-proxy.js b/modules/account/src/Volo.Abp.Account.Web/wwwroot/client-proxies/account-proxy.js index 8864396741..7a6ed6f47f 100644 --- a/modules/account/src/Volo.Abp.Account.Web/wwwroot/client-proxies/account-proxy.js +++ b/modules/account/src/Volo.Abp.Account.Web/wwwroot/client-proxies/account-proxy.js @@ -71,6 +71,38 @@ })(); + // controller volo.abp.account.profile + + (function(){ + + abp.utils.createNamespace(window, 'volo.abp.account.profile'); + + volo.abp.account.profile.get = function(ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/account/my-profile', + type: 'GET' + }, ajaxParams)); + }; + + volo.abp.account.profile.update = function(input, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/account/my-profile', + type: 'PUT', + data: JSON.stringify(input) + }, ajaxParams)); + }; + + volo.abp.account.profile.changePassword = function(input, ajaxParams) { + return abp.ajax($.extend(true, { + url: abp.appPath + 'api/account/my-profile/change-password', + type: 'POST', + dataType: null, + data: JSON.stringify(input) + }, ajaxParams)); + }; + + })(); + })(); diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestBase.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestBase.cs index 99a2eed68e..a605739498 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestBase.cs +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestBase.cs @@ -1,4 +1,9 @@ -using Volo.Abp.Testing; +using System; +using System.Linq; +using Volo.Abp.Domain.Entities; +using Volo.Abp.Identity; +using Volo.Abp.Identity.EntityFrameworkCore; +using Volo.Abp.Testing; namespace Volo.Abp.Account { @@ -8,5 +13,24 @@ namespace Volo.Abp.Account { options.UseAutofac(); } + + protected virtual IdentityUser GetUser(string userName) + { + var user = UsingDbContext(context => context.Users.FirstOrDefault(u => u.UserName == userName)); + if (user == null) + { + throw new EntityNotFoundException(); + } + + return user; + } + + protected virtual T UsingDbContext(Func action) + { + using (var dbContext = GetRequiredService()) + { + return action.Invoke(dbContext); + } + } } -} \ No newline at end of file +} diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs index 94baf4a03d..b894cfe219 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountApplicationTestModule.cs @@ -2,14 +2,17 @@ using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.Authorization; using Volo.Abp.Autofac; +using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.Identity.AspNetCore; using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.EntityFrameworkCore; +using Volo.Abp.Threading; namespace Volo.Abp.Account { @@ -27,6 +30,8 @@ namespace Volo.Abp.Account { public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddAlwaysAllowAuthorization(); + var sqliteConnection = CreateDatabaseAndGetConnection(); Configure(options => @@ -53,5 +58,25 @@ namespace Volo.Abp.Account return connection; } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + SeedTestData(context); + } + + private static void SeedTestData(ApplicationInitializationContext context) + { + using (var scope = context.ServiceProvider.CreateScope()) + { + var dataSeeder = scope.ServiceProvider.GetRequiredService(); + AsyncHelper.RunSync(async () => + { + await dataSeeder.SeedAsync(); + await scope.ServiceProvider + .GetRequiredService() + .Build(); + }); + } + } } } diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountTestDataBuilder.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountTestDataBuilder.cs new file mode 100644 index 0000000000..9c800032c5 --- /dev/null +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AbpAccountTestDataBuilder.cs @@ -0,0 +1,41 @@ +using System.Security.Claims; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Guids; +using Volo.Abp.Identity; +using IdentityUser = Volo.Abp.Identity.IdentityUser; + +namespace Volo.Abp.Account; + +public class AbpAccountTestDataBuilder : ITransientDependency +{ + private readonly IGuidGenerator _guidGenerator; + private readonly IIdentityUserRepository _userRepository; + private readonly AccountTestData _testData; + + public AbpAccountTestDataBuilder( + AccountTestData testData, + IGuidGenerator guidGenerator, + IIdentityUserRepository userRepository) + { + _testData = testData; + _guidGenerator = guidGenerator; + _userRepository = userRepository; + } + + public async Task Build() + { + await AddUsers(); + } + + private async Task AddUsers() + { + var john = new IdentityUser(_testData.UserJohnId, "john.nash", "john.nash@abp.io"); + john.AddLogin(new UserLoginInfo("github", "john", "John Nash")); + john.AddLogin(new UserLoginInfo("twitter", "johnx", "John Nash")); + john.AddClaim(_guidGenerator, new Claim("TestClaimType", "42")); + john.SetToken("test-provider", "test-name", "test-value"); + await _userRepository.InsertAsync(john); + } +} diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountTestData.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountTestData.cs new file mode 100644 index 0000000000..09918ba72b --- /dev/null +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/AccountTestData.cs @@ -0,0 +1,9 @@ +using System; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Account; + +public class AccountTestData : ISingletonDependency +{ + public Guid UserJohnId { get; } = Guid.NewGuid(); +} diff --git a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/ProfileAppService_Tests.cs b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/ProfileAppService_Tests.cs similarity index 90% rename from modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/ProfileAppService_Tests.cs rename to modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/ProfileAppService_Tests.cs index fc0334ce05..2ee63e36bc 100644 --- a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/ProfileAppService_Tests.cs +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo/Abp/Account/ProfileAppService_Tests.cs @@ -6,18 +6,18 @@ using Shouldly; using Volo.Abp.Users; using Xunit; -namespace Volo.Abp.Identity +namespace Volo.Abp.Account { - public class ProfileAppService_Tests : AbpIdentityApplicationTestBase + public class ProfileAppService_Tests : AbpAccountApplicationTestBase { private readonly IProfileAppService _profileAppService; - private readonly IdentityTestData _testData; + private readonly AccountTestData _testData; private ICurrentUser _currentUser; public ProfileAppService_Tests() { _profileAppService = GetRequiredService(); - _testData = GetRequiredService(); + _testData = GetRequiredService(); } protected override void AfterAddApplication(IServiceCollection services) @@ -32,7 +32,7 @@ namespace Volo.Abp.Identity //Arrange _currentUser.Id.Returns(_testData.UserJohnId); _currentUser.IsAuthenticated.Returns(true); - + //Act var result = await _profileAppService.GetAsync(); @@ -51,7 +51,7 @@ namespace Volo.Abp.Identity //Arrange _currentUser.Id.Returns(_testData.UserJohnId); _currentUser.IsAuthenticated.Returns(true); - + var input = new UpdateProfileDto { UserName = CreateRandomString(), diff --git a/modules/audit-logging/Volo.Abp.AuditLogging.sln b/modules/audit-logging/Volo.Abp.AuditLogging.sln index 747abf454a..02c68f1ee4 100644 --- a/modules/audit-logging/Volo.Abp.AuditLogging.sln +++ b/modules/audit-logging/Volo.Abp.AuditLogging.sln @@ -23,6 +23,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.Entit EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AuditLogging.MongoDB.Tests", "test\Volo.Abp.AuditLogging.MongoDB.Tests\Volo.Abp.AuditLogging.MongoDB.Tests.csproj", "{9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AuditLogging.Installer", "src\Volo.Abp.AuditLogging.Installer\Volo.Abp.AuditLogging.Installer.csproj", "{E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -61,6 +63,10 @@ Global {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Release|Any CPU.Build.0 = Release|Any CPU + {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -74,6 +80,7 @@ Global {6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83} = {971E31E2-FC37-41D3-8B6E-96848105C446} {CBED3E11-0A33-4B56-A75C-A57D25C98C38} = {971E31E2-FC37-41D3-8B6E-96848105C446} {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F} = {971E31E2-FC37-41D3-8B6E-96848105C446} + {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA} = {CFAB155F-5255-4D99-94E2-3361D8EA4B15} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9F36BAE5-A9CF-460C-8E7E-4580347F71F6} diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/FodyWeavers.xml b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/FodyWeavers.xsd b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj new file mode 100644 index 0000000000..27ab25e369 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo/Abp/AuditLogging/AbpAuditLoggingInstallerModule.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo/Abp/AuditLogging/AbpAuditLoggingInstallerModule.cs new file mode 100644 index 0000000000..d634e7aa60 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo/Abp/AuditLogging/AbpAuditLoggingInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.AuditLogging +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpAuditLoggingInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo/Abp/AuditLogging/AuditLoggingInstallerPipelineBuilder.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo/Abp/AuditLogging/AuditLoggingInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..ad0128c639 --- /dev/null +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo/Abp/AuditLogging/AuditLoggingInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.AuditLogging +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class AuditLoggingInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.AuditLogging.EntityFrameworkCore", + "ConfigureAuditLogging" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/background-jobs/Volo.Abp.BackgroundJobs.sln b/modules/background-jobs/Volo.Abp.BackgroundJobs.sln index 771eb08b19..2b2d8620a6 100644 --- a/modules/background-jobs/Volo.Abp.BackgroundJobs.sln +++ b/modules/background-jobs/Volo.Abp.BackgroundJobs.sln @@ -35,6 +35,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.Dem EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BackgroundJobs.DemoApp.Quartz", "app\Volo.Abp.BackgroundJobs.DemoApp.Quartz\Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj", "{0146891D-3FF8-4516-94D6-B9EFC37383CD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BackgroundJobs.Installer", "src\Volo.Abp.BackgroundJobs.Installer\Volo.Abp.BackgroundJobs.Installer.csproj", "{FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -93,6 +95,10 @@ Global {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Debug|Any CPU.Build.0 = Debug|Any CPU {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Release|Any CPU.ActiveCfg = Release|Any CPU {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Release|Any CPU.Build.0 = Release|Any CPU + {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -111,6 +117,7 @@ Global {2060AC85-2598-4342-A87C-A684A2C71A37} = {E400416D-2895-4512-9D17-90681EEC7E0A} {7C8D03F7-165E-478C-A6D6-DC8229EEABB9} = {E400416D-2895-4512-9D17-90681EEC7E0A} {0146891D-3FF8-4516-94D6-B9EFC37383CD} = {E400416D-2895-4512-9D17-90681EEC7E0A} + {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/FodyWeavers.xml b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/FodyWeavers.xsd b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj new file mode 100644 index 0000000000..59bd54205d --- /dev/null +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo/Abp/BackgroundJobs/AbpBackgroundJobsInstallerModule.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo/Abp/BackgroundJobs/AbpBackgroundJobsInstallerModule.cs new file mode 100644 index 0000000000..fb1bcf4014 --- /dev/null +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo/Abp/BackgroundJobs/AbpBackgroundJobsInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.BackgroundJobs +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpBackgroundJobsInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo/Abp/BackgroundJobs/BackgroundJobsInstallerPipelineBuilder.cs b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo/Abp/BackgroundJobs/BackgroundJobsInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..8011bd2272 --- /dev/null +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo/Abp/BackgroundJobs/BackgroundJobsInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.BackgroundJobs +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class BackgroundJobsInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.BackgroundJobs.EntityFrameworkCore", + "ConfigureBackgroundJobs" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/basic-theme/Volo.Abp.BasicTheme.abpmdl.json b/modules/basic-theme/Volo.Abp.BasicTheme.abpmdl.json new file mode 100644 index 0000000000..23dcc2e243 --- /dev/null +++ b/modules/basic-theme/Volo.Abp.BasicTheme.abpmdl.json @@ -0,0 +1,38 @@ +{ + "folders": { + "items": { + "src": {}, + "test": {} + } + }, + "packages": { + "Volo.Abp.AspNetCore.Components.Server.BasicTheme": { + "path": "src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.json", + "folder": "src" + }, + "Volo.Abp.AspNetCore.Components.Web.BasicTheme": { + "path": "src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.json", + "folder": "src" + }, + "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme": { + "path": "src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.abppkg.json", + "folder": "src" + }, + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic": { + "path": "src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.json", + "folder": "src" + }, + "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo": { + "path": "test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.json", + "folder": "test" + }, + "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo": { + "path": "test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.json", + "folder": "test" + }, + "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests": { + "path": "test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.abppkg.json", + "folder": "test" + } + } +} \ No newline at end of file diff --git a/modules/basic-theme/Volo.Abp.BasicTheme.abpsln.json b/modules/basic-theme/Volo.Abp.BasicTheme.abpsln.json new file mode 100644 index 0000000000..97199e5fa6 --- /dev/null +++ b/modules/basic-theme/Volo.Abp.BasicTheme.abpsln.json @@ -0,0 +1,7 @@ +{ + "modules": { + "Volo.Abp.BasicTheme": { + "path": "Volo.Abp.BasicTheme.abpmdl.json" + } + } +} \ No newline at end of file diff --git a/modules/basic-theme/Volo.Abp.BasicTheme.sln b/modules/basic-theme/Volo.Abp.BasicTheme.sln index 3c5add1f6f..2e65f7a98d 100644 --- a/modules/basic-theme/Volo.Abp.BasicTheme.sln +++ b/modules/basic-theme/Volo.Abp.BasicTheme.sln @@ -18,6 +18,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests", "test\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj", "{8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BasicTheme.Installer", "src\Volo.Abp.BasicTheme.Installer\Volo.Abp.BasicTheme.Installer.csproj", "{3068A87F-3348-4981-8241-2630BC496117}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -52,6 +54,10 @@ Global {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Debug|Any CPU.Build.0 = Debug|Any CPU {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Release|Any CPU.ActiveCfg = Release|Any CPU {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Release|Any CPU.Build.0 = Release|Any CPU + {3068A87F-3348-4981-8241-2630BC496117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3068A87F-3348-4981-8241-2630BC496117}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3068A87F-3348-4981-8241-2630BC496117}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3068A87F-3348-4981-8241-2630BC496117}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {C8068E7F-4A04-4755-8976-C2A4C0ADC708} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1} @@ -61,5 +67,6 @@ Global {7DFA95DB-F3A1-4883-AB03-9B02E540A134} = {0BC55E3B-4964-48E3-A390-2ADD37980149} {51B491ED-F959-4974-A876-528B5F16BC92} = {0BC55E3B-4964-48E3-A390-2ADD37980149} {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958} = {0BC55E3B-4964-48E3-A390-2ADD37980149} + {3068A87F-3348-4981-8241-2630BC496117} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1} EndGlobalSection EndGlobal diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.abppkg.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Brand/MainNavbarBrandViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Brand/MainNavbarBrandViewComponent.cs index 9698048412..564b4b70c2 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Brand/MainNavbarBrandViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Brand/MainNavbarBrandViewComponent.cs @@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Brand { public class MainNavbarBrandViewComponent : AbpViewComponent { - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View("~/Themes/Basic/Components/Brand/Default.cshtml"); } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/MainNavbar/MainNavbarViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/MainNavbar/MainNavbarViewComponent.cs index 96573c9c3b..64f097d24d 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/MainNavbar/MainNavbarViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/MainNavbar/MainNavbarViewComponent.cs @@ -4,7 +4,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.MainNav { public class MainNavbarViewComponent : AbpViewComponent { - public IViewComponentResult Invoke() + public virtual IViewComponentResult Invoke() { return View("~/Themes/Basic/Components/MainNavbar/Default.cshtml"); } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/MainNavbarMenuViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/MainNavbarMenuViewComponent.cs index 72534ecd42..31aeafbc99 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/MainNavbarMenuViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/MainNavbarMenuViewComponent.cs @@ -6,16 +6,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Menu { public class MainNavbarMenuViewComponent : AbpViewComponent { - private readonly IMenuManager _menuManager; + protected IMenuManager MenuManager { get; } public MainNavbarMenuViewComponent(IMenuManager menuManager) { - _menuManager = menuManager; + MenuManager = menuManager; } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var menu = await _menuManager.GetMainMenuAsync(); + var menu = await MenuManager.GetMainMenuAsync(); return View("~/Themes/Basic/Components/Menu/Default.cshtml", menu); } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/PageAlerts/PageAlertsViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/PageAlerts/PageAlertsViewComponent.cs index c805f20e69..9c99930caf 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/PageAlerts/PageAlertsViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/PageAlerts/PageAlertsViewComponent.cs @@ -5,16 +5,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.PageAle { public class PageAlertsViewComponent : AbpViewComponent { - private readonly IAlertManager _alertManager; + protected IAlertManager AlertManager { get; } public PageAlertsViewComponent(IAlertManager alertManager) { - _alertManager = alertManager; + AlertManager = alertManager; } public IViewComponentResult Invoke(string name) { - return View("~/Themes/Basic/Components/PageAlerts/Default.cshtml", _alertManager.Alerts); + return View("~/Themes/Basic/Components/PageAlerts/Default.cshtml", AlertManager.Alerts); } } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/LanguageSwitch/LanguageSwitchViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/LanguageSwitch/LanguageSwitchViewComponent.cs index 3dd1ba2b9d..1a8591464d 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/LanguageSwitch/LanguageSwitchViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/LanguageSwitch/LanguageSwitchViewComponent.cs @@ -10,16 +10,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar { public class LanguageSwitchViewComponent : AbpViewComponent { - private readonly ILanguageProvider _languageProvider; + protected ILanguageProvider LanguageProvider { get; } public LanguageSwitchViewComponent(ILanguageProvider languageProvider) { - _languageProvider = languageProvider; + LanguageProvider = languageProvider; } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var languages = await _languageProvider.GetLanguagesAsync(); + var languages = await LanguageProvider.GetLanguagesAsync(); var currentLanguage = languages.FindByCulture( CultureInfo.CurrentCulture.Name, CultureInfo.CurrentUICulture.Name diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolbarViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolbarViewComponent.cs index bfd02bbf4a..df93ec1b6d 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolbarViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/MainNavbarToolbarViewComponent.cs @@ -6,16 +6,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar { public class MainNavbarToolbarViewComponent : AbpViewComponent { - private readonly IToolbarManager _toolbarManager; + protected IToolbarManager ToolbarManager { get; } public MainNavbarToolbarViewComponent(IToolbarManager toolbarManager) { - _toolbarManager = toolbarManager; + ToolbarManager = toolbarManager; } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var toolbar = await _toolbarManager.GetAsync(StandardToolbars.Main); + var toolbar = await ToolbarManager.GetAsync(StandardToolbars.Main); return View("~/Themes/Basic/Components/Toolbar/Default.cshtml", toolbar); } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/UserMenuViewComponent.cs b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/UserMenuViewComponent.cs index cde4208578..d84c48b30a 100644 --- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/UserMenuViewComponent.cs +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Toolbar/UserMenu/UserMenuViewComponent.cs @@ -6,16 +6,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar { public class UserMenuViewComponent : AbpViewComponent { - private readonly IMenuManager _menuManager; + protected IMenuManager MenuManager { get; } public UserMenuViewComponent(IMenuManager menuManager) { - _menuManager = menuManager; + MenuManager = menuManager; } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var menu = await _menuManager.GetAsync(StandardMenus.User); + var menu = await MenuManager.GetAsync(StandardMenus.User); return View("~/Themes/Basic/Components/Toolbar/UserMenu/Default.cshtml", menu); } } diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.json b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/FodyWeavers.xml b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/FodyWeavers.xsd b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj new file mode 100644 index 0000000000..8a4b219092 --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo/Abp/BasicTheme/AbpBasicThemeInstallerModule.cs b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo/Abp/BasicTheme/AbpBasicThemeInstallerModule.cs new file mode 100644 index 0000000000..6339bb05be --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo/Abp/BasicTheme/AbpBasicThemeInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.BasicTheme +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpBasicThemeInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo/Abp/BasicTheme/BasicThemeInstallerPipelineBuilder.cs b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo/Abp/BasicTheme/BasicThemeInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..e90238130b --- /dev/null +++ b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo/Abp/BasicTheme/BasicThemeInstallerPipelineBuilder.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.BasicTheme +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class BasicThemeInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + return GetBasePipeline(context); + } + } +} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.abppkg.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index ca739c8c9a..0c2981215c 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^5.0.0-beta.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^5.0.0-beta.2", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index 09b85c69ce..f33c36ec71 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.shared@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,145 +34,145 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index f67052ed21..9371ef895f 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1", - "@abp/prismjs": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/prismjs": "^5.0.0-beta.2" }, "devDependencies": {} } diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index adea4202c3..f8dea02e55 100644 --- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,162 +41,162 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/clipboard@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.1.tgz#7c46ffe185116b1d3e43ef389df9dae2b98dd0c9" - integrity sha512-Gsr8qZNhxoH7uH+Kd0Q7qrQdGAjU20r65zjBI7iUgtpP/18obm87SUZLPDobZLAf+UB/Wl9VnxvedyLYDnuQGQ== +"@abp/clipboard@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.2.tgz#a7c7cbb090a5fad8744d6de48b9aa0deeda60d0f" + integrity sha512-rhJkXD3/6z5lXmN39uhXavMSSue+/D9h2SXs3HaBMzgAIJUI/qHPrHOAOMUdXT/jKiO+EQtLzLH8V/5nJtvIZQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" clipboard "^2.0.6" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.1.tgz#a41883c46e2ce67b2b9dcbe1ce85de9b183cfd29" - integrity sha512-Ps3X6gckZYUnWcmBPnXCa1LIh8HnQYxDD0WPppbEsp1VFN49T3yNO4G5jFVRxomFi5km8AluJW2zYk3Kh/4OSw== +"@abp/prismjs@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.2.tgz#d00876d3d0768305a3c7d3c178488352ce88df5d" + integrity sha512-PFSrnoPrl+4w9XyCwe4F3N+Qg/ekXWeUkX0Zwh+0oR8pxQlbJC6aiCRDhCsmui+dEU/0vYpkKHXq46iDHQnjxQ== dependencies: - "@abp/clipboard" "~5.0.0-beta.1" - "@abp/core" "~5.0.0-beta.1" + "@abp/clipboard" "~5.0.0-beta.2" + "@abp/core" "~5.0.0-beta.2" prismjs "^1.20.0" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln index e33e90fa86..e0644dd332 100644 --- a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln +++ b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln @@ -27,6 +27,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{9E416AD3-1 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlobStoring.Database.Host.ConsoleApp.ConsoleApp", "host\BlobStoring.Database.Host.ConsoleApp\src\BlobStoring.Database.Host.ConsoleApp.ConsoleApp\BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj", "{C3C4CB94-4F73-4D04-9076-8D98D5C6B475}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Database.Installer", "src\Volo.Abp.BlobStoring.Database.Installer\Volo.Abp.BlobStoring.Database.Installer.csproj", "{6181012D-3CBA-4825-B8A5-FD8926AE5661}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -69,6 +71,10 @@ Global {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Debug|Any CPU.Build.0 = Debug|Any CPU {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Release|Any CPU.Build.0 = Release|Any CPU + {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -83,6 +89,7 @@ Global {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} {E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D} {C3C4CB94-4F73-4D04-9076-8D98D5C6B475} = {9E416AD3-1EC8-439A-9CFD-AAFFA89E2AEB} + {6181012D-3CBA-4825-B8A5-FD8926AE5661} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/FodyWeavers.xml b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/FodyWeavers.xsd b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj new file mode 100644 index 0000000000..a2054f574c --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs new file mode 100644 index 0000000000..9ee224e4f4 --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/AbpBlobStoringDatabaseInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.BlobStoring.Database +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpBlobStoringDatabaseInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..ea82db0c8c --- /dev/null +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo/Abp/BlobStoring/Database/BlobStoringDatabaseInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.BlobStoring.Database +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class BlobStoringDatabaseInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", + "ConfigureBlobStoring" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index 023cd7cfcd..29760af4ab 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1", - "@abp/blogging": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/blogging": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/blogging/app/Volo.BloggingTestApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 4d068f4656..4f15a3340b 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,214 +41,214 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/blogging@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-5.0.0-beta.1.tgz#bfc5b5205dd1784d736fa6d51651728dc8e23478" - integrity sha512-kYxG9I1lBOWoUk/Tl9YqT7VbQiYwcBtxXOIwQV7u+cUGlSF/Ml1Wk222hgJ3OKt5Mx/X2z4uqS6zFraVyVyZQQ== +"@abp/blogging@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-5.0.0-beta.2.tgz#7b17678c4ef35e56743235ccb961963ce998e51d" + integrity sha512-yBW15UTWuVHwaV6M7bObngAImzOKpyPIrIAvFXtyC8XvXWAKQC2qtQa3O2f5PnMy+/dqQS6cfFXyab6IZ7MxQw== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - "@abp/owl.carousel" "~5.0.0-beta.1" - "@abp/prismjs" "~5.0.0-beta.1" - "@abp/tui-editor" "~5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + "@abp/owl.carousel" "~5.0.0-beta.2" + "@abp/prismjs" "~5.0.0-beta.2" + "@abp/tui-editor" "~5.0.0-beta.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/clipboard@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.1.tgz#7c46ffe185116b1d3e43ef389df9dae2b98dd0c9" - integrity sha512-Gsr8qZNhxoH7uH+Kd0Q7qrQdGAjU20r65zjBI7iUgtpP/18obm87SUZLPDobZLAf+UB/Wl9VnxvedyLYDnuQGQ== +"@abp/clipboard@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.2.tgz#a7c7cbb090a5fad8744d6de48b9aa0deeda60d0f" + integrity sha512-rhJkXD3/6z5lXmN39uhXavMSSue+/D9h2SXs3HaBMzgAIJUI/qHPrHOAOMUdXT/jKiO+EQtLzLH8V/5nJtvIZQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" clipboard "^2.0.6" -"@abp/codemirror@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-5.0.0-beta.1.tgz#3b2f6175454d23bed01cddc62a709e52c76e2162" - integrity sha512-0IAW0k6lk4yrC04kIW75Ez3nIx/RUsSTb5Wqf6K7TM0N5hIVdBTdIhc3ZqVPmAlXhFuwqLRIshjMNiVfgImSBg== +"@abp/codemirror@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-5.0.0-beta.2.tgz#830c764cbe37e9e1ea79040fd1196659cc15f0cc" + integrity sha512-PREr4mrvaKpoJlG1y0rl9aK30Frwb1LGAYOBPRLxMVHeLZZ11OMc67d7+HxofsvTdJ+vKafp2LDhafPIX+Fn6w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" codemirror "^5.54.0" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-5.0.0-beta.1.tgz#342512534f11160f5ccb273c31197fd440d8ce81" - integrity sha512-50eVFUwot4CpT/09H3zyHi3Qe7+d9Krg9hIf/OsE8PqvzNKZgwjaKGNOaNNoBvbdpS+LMpF4IcwCTZltsE+ZLA== +"@abp/highlight.js@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-5.0.0-beta.2.tgz#ea61c770e1928e16deab685049bf2b09cd97edd1" + integrity sha512-QZH4IQ4EM4s3uH2WAumSqw9gQOXg4DaJladiq12J/53dAqz40gUFWgq8JHmycpt0tKfpQL9Cw43zfkeMa+7SMg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-5.0.0-beta.1.tgz#eed2f8af8008d5ac641860cbe4fb4c08b96796a3" - integrity sha512-n515ThJw9WdUyfYrLxGH4fh43VGeleCpd0Yg7GZyte3yclhiKmTGe2M1aAMnD7lZeoPKtJf3eHJPPtqaH0omIQ== +"@abp/markdown-it@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-5.0.0-beta.2.tgz#4bbb862b54b145ecfc6c9f8c1a19b3e01263d82f" + integrity sha512-g5aYHg7xnpqNdJWvUHhTYhstGdhLYTkZX1cb8xi3tFnUL5pWFKDtaioIowO+6/Tohd7J9JlPisLP/ys57xLCPg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" markdown-it "^11.0.0" -"@abp/owl.carousel@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-5.0.0-beta.1.tgz#a8f8f92e842a57a6881254e6350bd02f1bd6fb7a" - integrity sha512-q7dMmpypEvDvj4P9QMbgIiUmtj1/PAL3F2BWp/YyXDvOGNEdSD3usfdazHPWxhJ8bvINOntTmTjiE42/8LYbGw== +"@abp/owl.carousel@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-5.0.0-beta.2.tgz#e50e1349fd91e65e52cf10d776650efd9c1b8745" + integrity sha512-PLHVSCxUEdtmkdV/GK50iYZ2aXan2/cejBomtFUWdl3SqcRom4OsW6xc7ANdktATvnrSV73Zwh7xEUF9AnVxHw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" owl.carousel "^2.3.4" -"@abp/prismjs@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.1.tgz#a41883c46e2ce67b2b9dcbe1ce85de9b183cfd29" - integrity sha512-Ps3X6gckZYUnWcmBPnXCa1LIh8HnQYxDD0WPppbEsp1VFN49T3yNO4G5jFVRxomFi5km8AluJW2zYk3Kh/4OSw== +"@abp/prismjs@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.2.tgz#d00876d3d0768305a3c7d3c178488352ce88df5d" + integrity sha512-PFSrnoPrl+4w9XyCwe4F3N+Qg/ekXWeUkX0Zwh+0oR8pxQlbJC6aiCRDhCsmui+dEU/0vYpkKHXq46iDHQnjxQ== dependencies: - "@abp/clipboard" "~5.0.0-beta.1" - "@abp/core" "~5.0.0-beta.1" + "@abp/clipboard" "~5.0.0-beta.2" + "@abp/core" "~5.0.0-beta.2" prismjs "^1.20.0" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/tui-editor@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.0.0-beta.1.tgz#be51a8adfe181e148b45c5fb9d2a4e2933e4e1ab" - integrity sha512-4ka2ABHdnuoub2sZtjaSQCJpK+ZCkXNiHsQEzKYLUVQdUW+w3fRNsYI+P7F+SJi9f1ZtYsOM0uwM3oWKqt1plA== +"@abp/tui-editor@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.0.0-beta.2.tgz#60548e594b4a06c9075b5501641a9a8e155729bf" + integrity sha512-ZYvRXXFLpzpoJLUjobGN+zC4UtuszX/yIF03rgu2mzXfKwA9JDvWWmpL4MftEpCeEFcRt5amt1DsGVKta3COJw== dependencies: - "@abp/codemirror" "~5.0.0-beta.1" - "@abp/highlight.js" "~5.0.0-beta.1" - "@abp/jquery" "~5.0.0-beta.1" - "@abp/markdown-it" "~5.0.0-beta.1" + "@abp/codemirror" "~5.0.0-beta.2" + "@abp/highlight.js" "~5.0.0-beta.2" + "@abp/jquery" "~5.0.0-beta.2" + "@abp/markdown-it" "~5.0.0-beta.2" "@toast-ui/editor" "^2.5.1" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/BloggingAdminRemoteServiceConsts.cs b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/BloggingAdminRemoteServiceConsts.cs index 1c4282adad..3da80f812c 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/BloggingAdminRemoteServiceConsts.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/BloggingAdminRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public static class BloggingAdminRemoteServiceConsts { public const string RemoteServiceName = "BloggingAdmin"; + + public const string ModuleName = "bloggingAdmin"; } } diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs index 4ee705551e..0a0c092081 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs @@ -11,7 +11,7 @@ using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging.Admin { [RemoteService(Name = BloggingAdminRemoteServiceConsts.RemoteServiceName)] - [Area("bloggingAdmin")] + [Area(BloggingAdminRemoteServiceConsts.ModuleName)] [Route("api/blogging/blogs/admin")] public class BlogManagementController : AbpControllerBase, IBlogManagementAppService { diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs b/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs index 1df71a47eb..507745b386 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs @@ -3,6 +3,7 @@ using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; @@ -48,6 +49,11 @@ namespace Volo.Blogging.Admin { options.AddProfile(validate: true); }); + + Configure(options => + { + options.DisableModule(BloggingAdminRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js b/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js index ec636b2487..5c75af8dd0 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js @@ -49,13 +49,14 @@ $(function () { .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); }, }, { text: l("ClearCache"), visible: abp.auth.isGranted( - 'Blogging.Blog.ClearCache' + 'Blogging.Blog.ClearCache' ), confirmMessage: function (data) { return l("ClearCacheConfirmationMessage"); diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/BloggingRemoteServiceConsts.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/BloggingRemoteServiceConsts.cs index e11f75adfb..8d865a979b 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/BloggingRemoteServiceConsts.cs +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/BloggingRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public static class BloggingRemoteServiceConsts { public const string RemoteServiceName = "Blogging"; + + public const string ModuleName = "blogging"; } } diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogFilesController.cs b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogFilesController.cs index 898d3fe09b..7df9cba876 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogFilesController.cs +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogFilesController.cs @@ -8,7 +8,7 @@ using Volo.Blogging.Files; namespace Volo.Blogging { [RemoteService(Name = BloggingRemoteServiceConsts.RemoteServiceName)] - [Area("blogging")] + [Area(BloggingRemoteServiceConsts.ModuleName)] [Route("api/blogging/files")] public class BlogFilesController : AbpControllerBase, IFileAppService { diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogsController.cs b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogsController.cs index af46d0784a..a05d9d076c 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogsController.cs +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/BlogsController.cs @@ -10,7 +10,7 @@ using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging { [RemoteService(Name = BloggingRemoteServiceConsts.RemoteServiceName)] - [Area("blogging")] + [Area(BloggingRemoteServiceConsts.ModuleName)] [Route("api/blogging/blogs")] public class BlogsController : AbpControllerBase, IBlogAppService { diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/CommentsController.cs b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/CommentsController.cs index 73d6a115f4..b4bfe34b08 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/CommentsController.cs +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/CommentsController.cs @@ -10,7 +10,7 @@ using Volo.Blogging.Comments.Dtos; namespace Volo.Blogging { [RemoteService(Name = BloggingRemoteServiceConsts.RemoteServiceName)] - [Area("blogging")] + [Area(BloggingRemoteServiceConsts.ModuleName)] [Route("api/blogging/comments")] public class CommentsController : AbpControllerBase, ICommentAppService { diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/PostsController.cs b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/PostsController.cs index 66f8f7afab..03cd460ed2 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/PostsController.cs +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/PostsController.cs @@ -9,7 +9,7 @@ using Volo.Blogging.Posts; namespace Volo.Blogging { [RemoteService(Name = BloggingRemoteServiceConsts.RemoteServiceName)] - [Area("blogging")] + [Area(BloggingRemoteServiceConsts.ModuleName)] [Route("api/blogging/posts")] public class PostsController : AbpControllerBase, IPostAppService { diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/TagsController.cs b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/TagsController.cs index 262e5ac801..9527786a42 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/TagsController.cs +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo/Blogging/TagsController.cs @@ -10,7 +10,7 @@ using Volo.Blogging.Tagging.Dtos; namespace Volo.Blogging { [RemoteService(Name = BloggingRemoteServiceConsts.RemoteServiceName)] - [Area("blogging")] + [Area(BloggingRemoteServiceConsts.ModuleName)] [Route("api/blogging/tags")] public class TagsController : AbpControllerBase, ITagAppService { diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs index da2da2abb1..3e44b651ec 100644 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs @@ -6,6 +6,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Packages.Prismjs; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; @@ -72,6 +73,11 @@ namespace Volo.Blogging options.Conventions.AddPageRoute("/Blogs/Posts/Edit", routePrefix + "{blogShortName}/posts/{postId}/edit"); options.Conventions.AddPageRoute("/Blogs/Posts/New", routePrefix + "{blogShortName}/posts/new"); }); + + Configure(options => + { + options.DisableModule(BloggingRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index d8002eb4f4..d82df27599 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 0a5c5ab1a9..ff3c852640 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/Volo.CmsKit.abpmdl.json b/modules/cms-kit/Volo.CmsKit.abpmdl.json new file mode 100644 index 0000000000..0c9b971493 --- /dev/null +++ b/modules/cms-kit/Volo.CmsKit.abpmdl.json @@ -0,0 +1,155 @@ +{ + "folders": { + "items": { + "src": {}, + "test": {}, + "host": {} + } + }, + "packages": { + "Volo.CmsKit.Domain.Shared": { + "path": "src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Domain": { + "path": "src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Application.Contracts": { + "path": "src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Application": { + "path": "src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.EntityFrameworkCore": { + "path": "src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.MongoDB": { + "path": "src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.HttpApi": { + "path": "src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.HttpApi.Client": { + "path": "src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.TestBase": { + "path": "test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.abppkg.json", + "folder": "test" + }, + "Volo.CmsKit.EntityFrameworkCore.Tests": { + "path": "test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.abppkg.json", + "folder": "test" + }, + "Volo.CmsKit.MongoDB.Tests": { + "path": "test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.abppkg.json", + "folder": "test" + }, + "Volo.CmsKit.Domain.Tests": { + "path": "test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.abppkg.json", + "folder": "test" + }, + "Volo.CmsKit.Application.Tests": { + "path": "test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.abppkg.json", + "folder": "test" + }, + "Volo.CmsKit.HttpApi.Host": { + "path": "host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.json", + "folder": "host" + }, + "Volo.CmsKit.Web": { + "path": "src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.HttpApi.Client.ConsoleTestApp": { + "path": "test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.abppkg.json", + "folder": "test" + }, + "Volo.CmsKit.Web.Host": { + "path": "host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.json", + "folder": "host" + }, + "Volo.CmsKit.IdentityServer": { + "path": "host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.json", + "folder": "host" + }, + "Volo.CmsKit.Host.Shared": { + "path": "host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.abppkg.json", + "folder": "host" + }, + "Volo.CmsKit.Web.Unified": { + "path": "host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.json", + "folder": "host" + }, + "Volo.CmsKit.Admin.Application": { + "path": "src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Admin.Application.Contracts": { + "path": "src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Admin.HttpApi": { + "path": "src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Admin.HttpApi.Client": { + "path": "src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Admin.Web": { + "path": "src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Public.Application": { + "path": "src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Public.Application.Contracts": { + "path": "src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Public.HttpApi": { + "path": "src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Public.HttpApi.Client": { + "path": "src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Public.Web": { + "path": "src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Common.Web": { + "path": "src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Common.Application.Contracts": { + "path": "src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Common.Application": { + "path": "src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Common.HttpApi": { + "path": "src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.json", + "folder": "src" + }, + "Volo.CmsKit.Common.HttpApi.Client": { + "path": "src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.json", + "folder": "src" + }, + "Volo.Abp.BlobStoring.Database.Installer": { + "path": "src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.abppkg.json", + "folder": "src" + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/Volo.CmsKit.abpsln.json b/modules/cms-kit/Volo.CmsKit.abpsln.json new file mode 100644 index 0000000000..1768ec8faf --- /dev/null +++ b/modules/cms-kit/Volo.CmsKit.abpsln.json @@ -0,0 +1,7 @@ +{ + "modules": { + "Volo.CmsKit": { + "path": "Volo.CmsKit.abpmdl.json" + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/Volo.CmsKit.sln b/modules/cms-kit/Volo.CmsKit.sln index ddc1dd2000..080ccbcf7f 100644 --- a/modules/cms-kit/Volo.CmsKit.sln +++ b/modules/cms-kit/Volo.CmsKit.sln @@ -87,6 +87,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Common.HttpApi" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Common.HttpApi.Client", "src\Volo.CmsKit.Common.HttpApi.Client\Volo.CmsKit.Common.HttpApi.Client.csproj", "{EC98F006-2002-4CE2-AA62-5EBB589ACD79}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Installer", "src\Volo.CmsKit.Installer\Volo.CmsKit.Installer.csproj", "{908C157E-2352-4373-BF5D-E5DA19913390}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -233,6 +235,10 @@ Global {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Debug|Any CPU.Build.0 = Debug|Any CPU {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Release|Any CPU.ActiveCfg = Release|Any CPU {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Release|Any CPU.Build.0 = Release|Any CPU + {908C157E-2352-4373-BF5D-E5DA19913390}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {908C157E-2352-4373-BF5D-E5DA19913390}.Debug|Any CPU.Build.0 = Debug|Any CPU + {908C157E-2352-4373-BF5D-E5DA19913390}.Release|Any CPU.ActiveCfg = Release|Any CPU + {908C157E-2352-4373-BF5D-E5DA19913390}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -277,6 +283,7 @@ Global {5D9BD65D-353E-4618-BE49-E1DF4CFF2393} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} {E8CC280A-D049-4564-9C71-2F5657C17937} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} {EC98F006-2002-4CE2-AA62-5EBB589ACD79} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} + {908C157E-2352-4373-BF5D-E5DA19913390} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index eea45c95c4..8e05a8e120 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -1,58 +1,58 @@ { - "name": "cms-kit", - "version": "0.0.0", - "scripts": { - "ng": "ng", - "start": "ng serve dev-app --open", - "build": "ng build cms-kit --prod", - "build:app": "npm run symlink:copy -- --no-watch && ng build dev-app --prod", - "symlink:copy": "symlink copy --angular --packages @my-company-name/cms-kit --prod", - "test": "ng test", - "lint": "ng lint", - "e2e": "ng e2e", - "compile:ivy": "yarn ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points --tsconfig './tsconfig.prod.json' --source node_modules --async false", - "postinstall": "npm run compile:ivy" - }, - "private": true, - "dependencies": { - "@abp/ng.account": "~5.0.0-beta.1", - "@abp/ng.identity": "~5.0.0-beta.1", - "@abp/ng.setting-management": "~5.0.0-beta.1", - "@abp/ng.tenant-management": "~5.0.0-beta.1", - "@abp/ng.theme.basic": "~5.0.0-beta.1", - "@angular/animations": "~10.0.0", - "@angular/common": "~10.0.0", - "@angular/compiler": "~10.0.0", - "@angular/core": "~10.0.0", - "@angular/forms": "~10.0.0", - "@angular/platform-browser": "~10.0.0", - "@angular/platform-browser-dynamic": "~10.0.0", - "@angular/router": "~10.0.0", - "rxjs": "~6.5.4", - "tslib": "^2.0.0", - "zone.js": "~0.10.2" - }, - "devDependencies": { - "@angular-devkit/build-angular": "~0.1000.0", - "@angular-devkit/build-ng-packagr": "~0.1000.0", - "@angular/cli": "~10.0.0", - "@angular/compiler-cli": "~10.0.0", - "@types/jasmine": "~3.5.0", - "@types/jasminewd2": "~2.0.3", - "@types/node": "^12.11.1", - "codelyzer": "^5.1.2", - "jasmine-core": "~3.5.0", - "jasmine-spec-reporter": "~5.0.0", - "karma": "~5.0.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~3.0.2", - "karma-jasmine": "~3.3.0", - "karma-jasmine-html-reporter": "^1.5.0", - "ng-packagr": "^10.0.0", - "protractor": "~7.0.0", - "symlink-manager": "^1.5.0", - "ts-node": "~8.3.0", - "tslint": "~6.1.0", - "typescript": "~3.9.5" - } -} \ No newline at end of file + "name": "cms-kit", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve dev-app --open", + "build": "ng build cms-kit --prod", + "build:app": "npm run symlink:copy -- --no-watch && ng build dev-app --prod", + "symlink:copy": "symlink copy --angular --packages @my-company-name/cms-kit --prod", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e", + "compile:ivy": "yarn ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points --tsconfig './tsconfig.prod.json' --source node_modules --async false", + "postinstall": "npm run compile:ivy" + }, + "private": true, + "dependencies": { + "@abp/ng.account": "~5.0.0-beta.2", + "@abp/ng.identity": "~5.0.0-beta.2", + "@abp/ng.setting-management": "~5.0.0-beta.2", + "@abp/ng.tenant-management": "~5.0.0-beta.2", + "@abp/ng.theme.basic": "~5.0.0-beta.2", + "@angular/animations": "~10.0.0", + "@angular/common": "~10.0.0", + "@angular/compiler": "~10.0.0", + "@angular/core": "~10.0.0", + "@angular/forms": "~10.0.0", + "@angular/platform-browser": "~10.0.0", + "@angular/platform-browser-dynamic": "~10.0.0", + "@angular/router": "~10.0.0", + "rxjs": "~6.5.4", + "tslib": "^2.0.0", + "zone.js": "~0.10.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1000.0", + "@angular-devkit/build-ng-packagr": "~0.1000.0", + "@angular/cli": "~10.0.0", + "@angular/compiler-cli": "~10.0.0", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^12.11.1", + "codelyzer": "^5.1.2", + "jasmine-core": "~3.5.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~3.3.0", + "karma-jasmine-html-reporter": "^1.5.0", + "ng-packagr": "^10.0.0", + "protractor": "~7.0.0", + "symlink-manager": "^1.5.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~3.9.5" + } +} diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 2a03e8cb26..6e1eafa1e9 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=5.0.0-beta.1", - "@abp/ng.theme.shared": ">=5.0.0-beta.1" + "@abp/ng.core": ">=5.0.0-beta.1-1", + "@abp/ng.theme.shared": ">=5.0.0-beta.1-1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.abppkg.json b/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.json b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.json new file mode 100644 index 0000000000..35f3cbe53c --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "host.http-api" +} \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 480eda973b..a46121a17c 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index 9988de7c5b..589b57dc82 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.json new file mode 100644 index 0000000000..48875c29cf --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "host.mvc" +} \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index c0cac3c1ac..0b39047afd 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index 5afc162e3e..4718d29670 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 22c81d159e..883e7e539d 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,12 +3,12 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1", - "@abp/cms-kit": "5.0.0-beta.1", - "@abp/tui-editor": "^5.0.0-beta.1", + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/cms-kit": "5.0.0-beta.2", + "@abp/tui-editor": "^5.0.0-beta.2", "tui-code-snippet": "1.5.2", - "@abp/uppy": "^5.0.0-beta.1", + "@abp/uppy": "^5.0.0-beta.2", "slugify": "1.4.6", - "@abp/jstree": "5.0.0-beta.1" + "@abp/jstree": "5.0.0-beta.2" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock index 5fced15453..ed8d58c95c 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,236 +41,236 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/cms-kit.admin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-5.0.0-beta.1.tgz#db5c8be13e70614c1ab7151992d772b65ffd336c" - integrity sha512-m/gdJOODJDzijvxTFkHrT1XSFxIP/Q5m2MNVCbtE7MZp0c2CrxJ8PZBHMhP8I5tSNjq8jGNa31cUyq51RR1cGQ== +"@abp/cms-kit.admin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-5.0.0-beta.2.tgz#a357890635c77fe57347a423c1cc14cac0966355" + integrity sha512-us2d53xBXFq4o5TjStuExw7Tn307BRYJdFOneH8V55z29MkED2bBRvoCnH9IjuWXOgnUnb1ceOxHOey61NJo/g== dependencies: - "@abp/jstree" "~5.0.0-beta.1" - "@abp/slugify" "~5.0.0-beta.1" - "@abp/tui-editor" "~5.0.0-beta.1" - "@abp/uppy" "~5.0.0-beta.1" + "@abp/jstree" "~5.0.0-beta.2" + "@abp/slugify" "~5.0.0-beta.2" + "@abp/tui-editor" "~5.0.0-beta.2" + "@abp/uppy" "~5.0.0-beta.2" -"@abp/cms-kit.public@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-5.0.0-beta.1.tgz#1d6a7d88baedb99d00e4f1e7f0659065c4107cd9" - integrity sha512-23Gsuv6+VgD5XLG1+cfUNcbckDCo08GLW8kfF8mPdYg3bXvO0uFPKuE7Y0AHWT/GIdFM5ya70V+qCDj4vUwjjA== +"@abp/cms-kit.public@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-5.0.0-beta.2.tgz#7d7d82f1dd617552ff44078ec45294e9abd453d7" + integrity sha512-4/K5XICVw4c4Z7kDT8Ag3yX93mada2eiXPVAFz/eBpW2uLnikKbiVo+G00XIJkV7kfoUHC2h8Qkm/8QP0wT8cw== dependencies: - "@abp/highlight.js" "~5.0.0-beta.1" - "@abp/star-rating-svg" "~5.0.0-beta.1" + "@abp/highlight.js" "~5.0.0-beta.2" + "@abp/star-rating-svg" "~5.0.0-beta.2" -"@abp/cms-kit@5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-5.0.0-beta.1.tgz#a193a4c631c2e98e454cd601cd6ba3552a250ddb" - integrity sha512-K9qUiXXE8EjD9Wg54a3wjzb0C+gTumRu3Hq/DCwMR3Q+2osusPF2slaDy5PxweLHcjA5Gt77SXr5erO4PJTGfg== +"@abp/cms-kit@5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-5.0.0-beta.2.tgz#38447886a4ce4f46154fea81836570468e6a7508" + integrity sha512-2UDABQxTpNYdJH08CxCnYNtku5BA2yrI9UIFo6i7M6tqcLmElUW+nFDPEca1k2d7ufPOwMRIMrMe35FGqjdGaA== dependencies: - "@abp/cms-kit.admin" "~5.0.0-beta.1" - "@abp/cms-kit.public" "~5.0.0-beta.1" + "@abp/cms-kit.admin" "~5.0.0-beta.2" + "@abp/cms-kit.public" "~5.0.0-beta.2" -"@abp/codemirror@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-5.0.0-beta.1.tgz#3b2f6175454d23bed01cddc62a709e52c76e2162" - integrity sha512-0IAW0k6lk4yrC04kIW75Ez3nIx/RUsSTb5Wqf6K7TM0N5hIVdBTdIhc3ZqVPmAlXhFuwqLRIshjMNiVfgImSBg== +"@abp/codemirror@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-5.0.0-beta.2.tgz#830c764cbe37e9e1ea79040fd1196659cc15f0cc" + integrity sha512-PREr4mrvaKpoJlG1y0rl9aK30Frwb1LGAYOBPRLxMVHeLZZ11OMc67d7+HxofsvTdJ+vKafp2LDhafPIX+Fn6w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" codemirror "^5.54.0" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-5.0.0-beta.1.tgz#342512534f11160f5ccb273c31197fd440d8ce81" - integrity sha512-50eVFUwot4CpT/09H3zyHi3Qe7+d9Krg9hIf/OsE8PqvzNKZgwjaKGNOaNNoBvbdpS+LMpF4IcwCTZltsE+ZLA== +"@abp/highlight.js@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-5.0.0-beta.2.tgz#ea61c770e1928e16deab685049bf2b09cd97edd1" + integrity sha512-QZH4IQ4EM4s3uH2WAumSqw9gQOXg4DaJladiq12J/53dAqz40gUFWgq8JHmycpt0tKfpQL9Cw43zfkeMa+7SMg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/jstree@5.0.0-beta.1", "@abp/jstree@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-5.0.0-beta.1.tgz#8d60ef0366a2a11a9ace3ee995f024eebfaf80bc" - integrity sha512-dG67IXEH2Bkf1SBVlX4k4gNkCyc6bIgBBG5xrSQ1RcuVxN5MLZ7S2pcBrlzwZfYppv2kH9cmn3FETrCchEktBQ== +"@abp/jstree@5.0.0-beta.2", "@abp/jstree@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-5.0.0-beta.2.tgz#0d48304a62add8bf3023314a4e024ae360c66a79" + integrity sha512-Hgp7tkAZnDzY3IMmctkvdTcadqR1llkwI136SscSVNJE6/XcW++jRh5CtwDQIqLkMFR5PQTlTXlV4SrT+bkUJg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jstree "^3.3.9" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-5.0.0-beta.1.tgz#eed2f8af8008d5ac641860cbe4fb4c08b96796a3" - integrity sha512-n515ThJw9WdUyfYrLxGH4fh43VGeleCpd0Yg7GZyte3yclhiKmTGe2M1aAMnD7lZeoPKtJf3eHJPPtqaH0omIQ== +"@abp/markdown-it@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-5.0.0-beta.2.tgz#4bbb862b54b145ecfc6c9f8c1a19b3e01263d82f" + integrity sha512-g5aYHg7xnpqNdJWvUHhTYhstGdhLYTkZX1cb8xi3tFnUL5pWFKDtaioIowO+6/Tohd7J9JlPisLP/ys57xLCPg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" markdown-it "^11.0.0" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/slugify@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-5.0.0-beta.1.tgz#fe763e4bd20a0b646320d9f1f2f0905d7f235f2b" - integrity sha512-41zqeWZ0utg5OrLXcyENUlu+cBFE+yWKUSIjhTb0e3x1/+9QztauK6jamdaBqFapGzNCTWzfdDVwgLctsQ5K7A== +"@abp/slugify@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-5.0.0-beta.2.tgz#5bd39971d5fdc24b4c6ad1b8bcf091b5d603213e" + integrity sha512-KcKBkawQDHG/Gi9W/3tlbUKsrZ8rHUmGkIINRbLUr1AK8+5kdS7iyL/CLlK+MvWbkF3BckiiBxSa7nWfLHvKkw== dependencies: slugify "^1.4.7" -"@abp/star-rating-svg@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-5.0.0-beta.1.tgz#f38e79f8f54cfbbaa1cd7ef528165c8ac0a59f9b" - integrity sha512-S0I+thqR+aaU4UKYKs0jp0i3EC439jEB3uaXjtvEj53XKvhCpJXif1b9Hax+s2uxj1iEzi5z6P3MlwB4jZaRLg== +"@abp/star-rating-svg@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-5.0.0-beta.2.tgz#a142b9b040d713f1c6e0e8030b59407fb3a927db" + integrity sha512-q6ypP8O6NjSP+rNDdtSX4e7Qw0LO61b18tw7fvRfE68u/g+IX0a2IozXQAnMS7BaVS0AI87Bf0RH53/zBfRTIA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" star-rating-svg "^3.5.0" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/tui-editor@^5.0.0-beta.1", "@abp/tui-editor@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.0.0-beta.1.tgz#be51a8adfe181e148b45c5fb9d2a4e2933e4e1ab" - integrity sha512-4ka2ABHdnuoub2sZtjaSQCJpK+ZCkXNiHsQEzKYLUVQdUW+w3fRNsYI+P7F+SJi9f1ZtYsOM0uwM3oWKqt1plA== +"@abp/tui-editor@^5.0.0-beta.2", "@abp/tui-editor@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-5.0.0-beta.2.tgz#60548e594b4a06c9075b5501641a9a8e155729bf" + integrity sha512-ZYvRXXFLpzpoJLUjobGN+zC4UtuszX/yIF03rgu2mzXfKwA9JDvWWmpL4MftEpCeEFcRt5amt1DsGVKta3COJw== dependencies: - "@abp/codemirror" "~5.0.0-beta.1" - "@abp/highlight.js" "~5.0.0-beta.1" - "@abp/jquery" "~5.0.0-beta.1" - "@abp/markdown-it" "~5.0.0-beta.1" + "@abp/codemirror" "~5.0.0-beta.2" + "@abp/highlight.js" "~5.0.0-beta.2" + "@abp/jquery" "~5.0.0-beta.2" + "@abp/markdown-it" "~5.0.0-beta.2" "@toast-ui/editor" "^2.5.1" -"@abp/uppy@^5.0.0-beta.1", "@abp/uppy@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-5.0.0-beta.1.tgz#c647781c4cf2c2f45cfbbce55fdfd01a37e10272" - integrity sha512-ynx4lcQMav+RBE3BJpC8ooL2uegMYeGeURGnCjLX8VyBsmuoFLq+F1OChWhdLl2ppnyLegFXX7wPAQI1SeT7/w== +"@abp/uppy@^5.0.0-beta.2", "@abp/uppy@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-5.0.0-beta.2.tgz#9b2dc0333cd2b35431a7287d60883d57796b63cf" + integrity sha512-oNRMMqgaFMMLDqPRaVOLER04iZ3Mx3h1kmfWOnEra3zopHqB/c3B3sOgaYYVzav2IeO/lz4YUuzLN6+/kZEIVw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" uppy "^1.16.1" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.json new file mode 100644 index 0000000000..49032794e2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminRemoteServiceConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminRemoteServiceConsts.cs index 967b52bf8b..53dfe77fbb 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminRemoteServiceConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/CmsKitAdminRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class CmsKitAdminRemoteServiceConsts { public const string RemoteServiceName = "CmsKitAdmin"; + + public const string ModuleName = "cms-kit-admin"; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.json new file mode 100644 index 0000000000..412567ac33 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.json new file mode 100644 index 0000000000..7deef5e383 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.json new file mode 100644 index 0000000000..515bfe64c4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs index 2bfb6ad092..bf538276d0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogAdminController.cs @@ -12,7 +12,7 @@ namespace Volo.CmsKit.Admin.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Authorize(CmsKitAdminPermissions.Blogs.Default)] [Route("api/cms-kit-admin/blogs")] public class BlogAdminController : CmsKitAdminController, IBlogAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs index ea2a561b06..bb8dcd4fa6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogFeatureAdminController.cs @@ -13,7 +13,7 @@ namespace Volo.CmsKit.Admin.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Authorize(CmsKitAdminPermissions.Blogs.Features)] [Route("api/cms-kit-admin/blogs/{blogId}/features")] public class BlogFeatureAdminController : CmsKitAdminController, IBlogFeatureAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs index c09a762423..d8e442553f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs @@ -12,7 +12,7 @@ namespace Volo.CmsKit.Admin.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Authorize(CmsKitAdminPermissions.BlogPosts.Default)] [Route("api/cms-kit-admin/blogs/blog-posts")] public class BlogPostAdminController : CmsKitAdminController, IBlogPostAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs index f979d9d5a9..efa9876f7d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs @@ -13,7 +13,7 @@ namespace Volo.CmsKit.Admin.Comments [Authorize(CmsKitAdminPermissions.Comments.Default)] [RequiresGlobalFeature(typeof(CommentsFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-admin/comments")] public class CommentAdminController : CmsKitAdminController, ICommentAdminAppService { @@ -45,4 +45,4 @@ namespace Volo.CmsKit.Admin.Comments return CommentAdminAppService.DeleteAsync(id); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs index 5465bc13eb..1495af2121 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/MediaDescriptors/MediaDescriptorAdminController.cs @@ -13,7 +13,7 @@ namespace Volo.CmsKit.Admin.MediaDescriptors { [RequiresGlobalFeature(typeof(MediaFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-admin/media")] public class MediaDescriptorAdminController : CmsKitAdminController, IMediaDescriptorAdminAppService { @@ -38,4 +38,4 @@ namespace Volo.CmsKit.Admin.MediaDescriptors return MediaDescriptorAdminAppService.DeleteAsync(id); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Menus/MenuItemAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Menus/MenuItemAdminController.cs index 2f32391d84..b83c5f962c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Menus/MenuItemAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Menus/MenuItemAdminController.cs @@ -13,7 +13,7 @@ namespace Volo.CmsKit.Admin.Menus { [RequiresGlobalFeature(typeof(MenuFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Authorize(CmsKitAdminPermissions.Menus.Default)] [Route("api/cms-kit-admin/menu-items")] public class MenuItemAdminController : CmsKitAdminController, IMenuItemAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs index e1ccb4cec4..e502a6d61a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs @@ -13,7 +13,7 @@ namespace Volo.CmsKit.Admin.Pages { [RequiresGlobalFeature(typeof(PagesFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Authorize(CmsKitAdminPermissions.Pages.Default)] [Route("api/cms-kit-admin/pages")] public class PageAdminController : CmsKitAdminController, IPageAdminAppService @@ -61,4 +61,4 @@ namespace Volo.CmsKit.Admin.Pages return PageAdminAppService.DeleteAsync(id); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs index 23636073a0..72c742a166 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/EntityTagAdminController.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.Admin.Tags { [RequiresGlobalFeature(typeof(TagsFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-admin/entity-tags")] public class EntityTagAdminController : CmsKitAdminController, IEntityTagAdminAppService { diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs index 075ecb46d9..514e3a9bba 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Tags/TagAdminController.cs @@ -15,7 +15,7 @@ namespace Volo.CmsKit.Admin.Tags { [RequiresGlobalFeature(typeof(TagsFeature))] [RemoteService(Name = CmsKitAdminRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-admin")] + [Area(CmsKitAdminRemoteServiceConsts.ModuleName)] [Authorize(CmsKitAdminPermissions.Tags.Default)] [Route("api/cms-kit-admin/tags")] public class TagAdminController : CmsKitAdminController, ITagAdminAppService diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs index 0459edaa7a..549e200aae 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs @@ -11,6 +11,7 @@ using Volo.CmsKit.Permissions; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars; using Volo.Abp.Localization; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; namespace Volo.CmsKit.Admin.Web { @@ -152,6 +153,11 @@ namespace Volo.CmsKit.Admin.Web ); }); }); + + Configure(options => + { + options.DisableModule(CmsKitAdminRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js index ce6e56d842..60d0de3cb5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js @@ -44,6 +44,7 @@ $(function () { .delete(data.record.id) .then(function () { dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js index 7057b9f50b..be42901967 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js @@ -49,6 +49,7 @@ $(function () { .delete(data.record.id) .then(function () { dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js index 90e16271ce..6d6e6a6dba 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js @@ -10,6 +10,7 @@ $(function (){ todayBtn: "linked", autoclose: true, language: abp.localization.currentCulture.cultureName, + format: abp.localization.currentCulture.dateTimeFormat.shortDatePattern }) .on("hide", function (e) { e.stopPropagation(); @@ -74,6 +75,7 @@ $(function (){ .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js index af104dec71..7239c8d755 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js @@ -10,6 +10,7 @@ $(function (){ todayBtn: "linked", autoclose: true, language: abp.localization.currentCulture.cultureName, + format: abp.localization.currentCulture.dateTimeFormat.shortDatePattern }) .on("hide", function (e) { e.stopPropagation(); @@ -74,6 +75,7 @@ $(function (){ .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js index f72bd40159..3a8612072c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js @@ -43,6 +43,7 @@ $(function (){ .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Components/TagEditor/TagEditorViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Components/TagEditor/TagEditorViewComponent.cs index 3c77f8c0c2..16f84e214b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Components/TagEditor/TagEditorViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Components/TagEditor/TagEditorViewComponent.cs @@ -22,7 +22,7 @@ namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.Components.TagEditor TagAppService = tagAppService; } - public async Task InvokeAsync(string entityType, string entityId, bool displaySubmitButton = true) + public virtual async Task InvokeAsync(string entityType, string entityId, bool displaySubmitButton = true) { var tags = entityId.IsNullOrWhiteSpace() ? diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.json new file mode 100644 index 0000000000..49032794e2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.json new file mode 100644 index 0000000000..412567ac33 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.json new file mode 100644 index 0000000000..49032794e2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/CmsKitCommonRemoteServiceConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/CmsKitCommonRemoteServiceConsts.cs index aa0412f026..2fdb413fc9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/CmsKitCommonRemoteServiceConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/CmsKitCommonRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class CmsKitCommonRemoteServiceConsts { public const string RemoteServiceName = "CmsKitCommon"; + + public const string ModuleName = "cms-kit-common"; } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.json new file mode 100644 index 0000000000..412567ac33 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.json new file mode 100644 index 0000000000..7deef5e383 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.json new file mode 100644 index 0000000000..515bfe64c4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Blogs/BlogFeatureController.cs b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Blogs/BlogFeatureController.cs index ecb87be110..a282116ce5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Blogs/BlogFeatureController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Blogs/BlogFeatureController.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-common")] + [Area(CmsKitCommonRemoteServiceConsts.ModuleName)] [Route("api/cms-kit/blogs/{blogId}/features")] public class BlogFeatureController : CmsKitControllerBase, IBlogFeatureAppService { diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/MediaDescriptors/MediaDescriptorController.cs b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/MediaDescriptors/MediaDescriptorController.cs index 9149d264cd..6dac329571 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/MediaDescriptors/MediaDescriptorController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/MediaDescriptors/MediaDescriptorController.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.MediaDescriptors { [RequiresGlobalFeature(typeof(MediaFeature))] [RemoteService(Name = CmsKitCommonRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit-common")] + [Area(CmsKitCommonRemoteServiceConsts.ModuleName)] [Route("api/cms-kit/media")] public class MediaDescriptorController : CmsKitControllerBase, IMediaDescriptorAppService { @@ -28,4 +28,4 @@ namespace Volo.CmsKit.MediaDescriptors return MediaDescriptorAppService.DownloadAsync(id); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs index f100a15878..ea340d61e5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs @@ -1,5 +1,6 @@ using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Reactions; @@ -36,6 +37,11 @@ namespace Volo.CmsKit.Web { options.FileSets.AddEmbedded(); }); + + Configure(options => + { + options.DisableModule(CmsKitCommonRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.json new file mode 100644 index 0000000000..8b3de05f76 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.domain-shared" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.json new file mode 100644 index 0000000000..1d574efe45 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.domain" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.json new file mode 100644 index 0000000000..e1c64f0175 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.ef" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.json new file mode 100644 index 0000000000..7deef5e383 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.json new file mode 100644 index 0000000000..515bfe64c4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.Abp.BlobStoring.Database.Installer.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.Abp.BlobStoring.Database.Installer.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.Abp.BlobStoring.Database.Installer.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj new file mode 100644 index 0000000000..4ed4ae03fa --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/Volo/Abp/CmsKit/AbpCmsKitInstallerModule.cs b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo/Abp/CmsKit/AbpCmsKitInstallerModule.cs new file mode 100644 index 0000000000..3b0d976f2a --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo/Abp/CmsKit/AbpCmsKitInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.CmsKit +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class VoloCmsKitDatabaseInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/Volo/Abp/CmsKit/CmsKitInstallerPipelineBuilder.cs b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo/Abp/CmsKit/CmsKitInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..a9333b3d5c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo/Abp/CmsKit/CmsKitInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.CmsKit +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class BlobStoringDatabaseInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.CmsKit.EntityFrameworkCore", + "ConfigureCmsKit" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.json new file mode 100644 index 0000000000..8b23fd1e69 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mongodb" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.json new file mode 100644 index 0000000000..49032794e2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicRemoteServiceConsts.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicRemoteServiceConsts.cs index ee33e7769f..4fe886823e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicRemoteServiceConsts.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/CmsKitPublicRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class CmsKitPublicRemoteServiceConsts { public const string RemoteServiceName = "CmsKitPublic"; + + public const string ModuleName = "cms-kit"; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.json new file mode 100644 index 0000000000..412567ac33 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.json new file mode 100644 index 0000000000..7deef5e383 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.json new file mode 100644 index 0000000000..515bfe64c4 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Blogs/BlogPostPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Blogs/BlogPostPublicController.cs index 4b5aac6e86..adc97217cd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Blogs/BlogPostPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Blogs/BlogPostPublicController.cs @@ -11,7 +11,7 @@ namespace Volo.CmsKit.Public.Blogs { [RequiresGlobalFeature(typeof(BlogsFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/blog-posts")] public class BlogPostPublicController : CmsKitPublicControllerBase, IBlogPostPublicAppService { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Comments/CommentPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Comments/CommentPublicController.cs index 1b5b2cc64d..d827381ba0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Comments/CommentPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Comments/CommentPublicController.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.Public.Comments { [RequiresGlobalFeature(typeof(CommentsFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/comments")] public class CommentPublicController : CmsKitPublicControllerBase, ICommentPublicAppService { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Menus/MenuItemPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Menus/MenuItemPublicController.cs index c64b8e3ffa..cf2450c9a6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Menus/MenuItemPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Menus/MenuItemPublicController.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.Public.Menus { [RequiresGlobalFeature(typeof(BlogsFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/menu-items")] public class MenuItemPublicController : CmsKitPublicControllerBase, IMenuItemPublicAppService { @@ -27,4 +27,4 @@ namespace Volo.CmsKit.Public.Menus return MenuPublicAppService.GetListAsync(); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs index 902296c114..76fc579d50 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Pages/PagesPublicController.cs @@ -8,7 +8,7 @@ namespace Volo.CmsKit.Public.Pages { [RequiresGlobalFeature(typeof(PagesFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/pages")] public class PagesPublicController : CmsKitPublicControllerBase, IPagePublicAppService { @@ -26,4 +26,4 @@ namespace Volo.CmsKit.Public.Pages return PageAppService.FindBySlugAsync(slug); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Ratings/RatingPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Ratings/RatingPublicController.cs index 1a10919f8c..1879c65376 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Ratings/RatingPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Ratings/RatingPublicController.cs @@ -9,7 +9,7 @@ namespace Volo.CmsKit.Public.Ratings { [RequiresGlobalFeature(typeof(RatingsFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/ratings")] public class RatingPublicController : CmsKitPublicControllerBase, IRatingPublicAppService { @@ -41,4 +41,4 @@ namespace Volo.CmsKit.Public.Ratings return RatingPublicAppService.GetGroupedStarCountsAsync(entityType, entityId); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Reactions/ReactionPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Reactions/ReactionPublicController.cs index 65170dc2bd..c40673d741 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Reactions/ReactionPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Reactions/ReactionPublicController.cs @@ -9,7 +9,7 @@ namespace Volo.CmsKit.Public.Reactions { [RequiresGlobalFeature(typeof(ReactionsFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/reactions")] public class ReactionPublicController : CmsKitPublicControllerBase, IReactionPublicAppService { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs index 7d36b60160..d5266a49ee 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/Tags/TagPublicController.cs @@ -10,7 +10,7 @@ namespace Volo.CmsKit.Public.Tags { [RequiresGlobalFeature(typeof(TagsFeature))] [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] - [Area("cms-kit")] + [Area(CmsKitPublicRemoteServiceConsts.ModuleName)] [Route("api/cms-kit-public/tags")] public class TagPublicController : CmsKitPublicControllerBase, ITagAppService { @@ -28,4 +28,4 @@ namespace Volo.CmsKit.Public.Tags return TagAppService.GetAllRelatedTagsAsync(entityType, entityId); } } -} \ No newline at end of file +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs index f0fcce6abc..ca441edbcc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/CmsKitPublicWebModule.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AutoMapper; using Volo.Abp.GlobalFeatures; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; @@ -66,6 +67,11 @@ namespace Volo.CmsKit.Public.Web .UseGridTables() .UsePipeTables() .Build()); + + Configure(options => + { + options.DisableModule(CmsKitPublicRemoteServiceConsts.ModuleName); + }); } public override void PostConfigureServices(ServiceConfigurationContext context) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.json b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.abppkg.json b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.abppkg.json b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.abppkg.json b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.abppkg.json b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.abppkg.json b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.abppkg.json b/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/docs/app/VoloDocs.Web/package.json b/modules/docs/app/VoloDocs.Web/package.json index 987d011aa2..1315c7e2cb 100644 --- a/modules/docs/app/VoloDocs.Web/package.json +++ b/modules/docs/app/VoloDocs.Web/package.json @@ -3,7 +3,7 @@ "name": "volo.docstestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1", - "@abp/docs": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/docs": "^5.0.0-beta.2" } } diff --git a/modules/docs/app/VoloDocs.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/docs/app/VoloDocs.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/docs/app/VoloDocs.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/docs/app/VoloDocs.Web/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/docs/app/VoloDocs.Web/yarn.lock b/modules/docs/app/VoloDocs.Web/yarn.lock index dcd06bbde0..79331c9205 100644 --- a/modules/docs/app/VoloDocs.Web/yarn.lock +++ b/modules/docs/app/VoloDocs.Web/yarn.lock @@ -2,45 +2,45 @@ # yarn lockfile v1 -"@abp/anchor-js@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-5.0.0-beta.1.tgz#374dbb25de11fe407e113a3188f9d1e65b7ddd20" - integrity sha512-HsiWOtyqUntRou/NOyt1k9N8+5Gq+K6XByxu8LEEKc+KmfDMbTITuezQXVsZMdBS4FHzpiGKpm0MsxgflyWcLg== +"@abp/anchor-js@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-5.0.0-beta.2.tgz#27b15070d904e50a53a77dad80b290ec861e170c" + integrity sha512-FS95T0MzWkD4XqZIfoj0bNQW7GAXHY75pNJSH5J73q7kzBWxhueIQx2mnSnlMM/dMvsjvFqB2H5/92er8JBdJQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" anchor-js "^4.2.2" -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -49,181 +49,181 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/clipboard@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.1.tgz#7c46ffe185116b1d3e43ef389df9dae2b98dd0c9" - integrity sha512-Gsr8qZNhxoH7uH+Kd0Q7qrQdGAjU20r65zjBI7iUgtpP/18obm87SUZLPDobZLAf+UB/Wl9VnxvedyLYDnuQGQ== +"@abp/clipboard@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.2.tgz#a7c7cbb090a5fad8744d6de48b9aa0deeda60d0f" + integrity sha512-rhJkXD3/6z5lXmN39uhXavMSSue+/D9h2SXs3HaBMzgAIJUI/qHPrHOAOMUdXT/jKiO+EQtLzLH8V/5nJtvIZQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" clipboard "^2.0.6" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/docs@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-5.0.0-beta.1.tgz#c9015d551234331f3a33d4699fb1492fa35ef0fc" - integrity sha512-xj5ZTqVoINuod3B6LAfExGGVJAw2/ia7ftSO/VUJhpYrMVfTjlm6xZ+FLqOuTPAPVSP1mEkKbAPmPqKkJ2koRQ== +"@abp/docs@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-5.0.0-beta.2.tgz#5d53a1c98e7fbc05012fd39370f269048815ceaa" + integrity sha512-5H3vC0pGuWARzALrkdgCq2I4/78Y280nux/h2mgcGibZr6rzGoETNLD6tVmVegsOryLVozUCk9vA7geBs1OYhA== dependencies: - "@abp/anchor-js" "~5.0.0-beta.1" - "@abp/clipboard" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/popper.js" "~5.0.0-beta.1" - "@abp/prismjs" "~5.0.0-beta.1" + "@abp/anchor-js" "~5.0.0-beta.2" + "@abp/clipboard" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/popper.js" "~5.0.0-beta.2" + "@abp/prismjs" "~5.0.0-beta.2" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/popper.js@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-5.0.0-beta.1.tgz#732a4fd9b32e7a70c4a4f27665aeee7b99b3d2e8" - integrity sha512-I752rSlW5GdkB9Nc9Cxu67XKOETZoS54ZOlp2arSWgdyAI8BLDAUOpdpy+tjQiVOUX9aIVuV5EWkQRyI9b5o3Q== +"@abp/popper.js@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-5.0.0-beta.2.tgz#9b69fc1e913dcd5d80687470684301293537f0fc" + integrity sha512-Pf6O8Kdb4yC2Yh4PRAudMBVxolPAaKjpoMOh2nnlEMtorT/5Vrw21D8DdCd5ANh6oNmcAbKXin0KVCzJoS3lDQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" popper.js "^1.16.0" -"@abp/prismjs@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.1.tgz#a41883c46e2ce67b2b9dcbe1ce85de9b183cfd29" - integrity sha512-Ps3X6gckZYUnWcmBPnXCa1LIh8HnQYxDD0WPppbEsp1VFN49T3yNO4G5jFVRxomFi5km8AluJW2zYk3Kh/4OSw== +"@abp/prismjs@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.2.tgz#d00876d3d0768305a3c7d3c178488352ce88df5d" + integrity sha512-PFSrnoPrl+4w9XyCwe4F3N+Qg/ekXWeUkX0Zwh+0oR8pxQlbJC6aiCRDhCsmui+dEU/0vYpkKHXq46iDHQnjxQ== dependencies: - "@abp/clipboard" "~5.0.0-beta.1" - "@abp/core" "~5.0.0-beta.1" + "@abp/clipboard" "~5.0.0-beta.2" + "@abp/core" "~5.0.0-beta.2" prismjs "^1.20.0" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminRemoteServiceConsts.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminRemoteServiceConsts.cs index 8f29237bb0..bab350b42d 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminRemoteServiceConsts.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public static class DocsAdminRemoteServiceConsts { public const string RemoteServiceName = "AbpDocsAdmin"; + + public const string ModuleName = "docs-admin"; } } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs index f08c8e8f71..9404ac0bde 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs @@ -10,7 +10,7 @@ using Volo.Docs.Admin.Documents; namespace Volo.Docs.Admin { [RemoteService(Name = DocsAdminRemoteServiceConsts.RemoteServiceName)] - [Area("docs-admin")] + [Area(DocsAdminRemoteServiceConsts.ModuleName)] [ControllerName("DocumentsAdmin")] [Route("api/docs/admin/documents")] public class DocumentsAdminController : AbpControllerBase, IDocumentAdminAppService diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs index 968e60adb7..1696229bf8 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs @@ -9,7 +9,7 @@ using Volo.Docs.Admin.Projects; namespace Volo.Docs.Admin { [RemoteService(Name = DocsAdminRemoteServiceConsts.RemoteServiceName)] - [Area("docs-admin")] + [Area(DocsAdminRemoteServiceConsts.ModuleName)] [ControllerName("ProjectsAdmin")] [Route("api/docs/admin/projects")] public class ProjectsAdminController : AbpControllerBase, IProjectAdminAppService diff --git a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs index 0c054f4a0b..3e0d548487 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs @@ -2,6 +2,7 @@ using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; @@ -46,6 +47,11 @@ namespace Volo.Docs.Admin { options.AddProfile(validate: true); }); + + Configure(options => + { + options.DisableModule(DocsAdminRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js index 6748447724..463fd60f50 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js @@ -57,6 +57,7 @@ $(function () { .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); }, }, diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsRemoteServiceConsts.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsRemoteServiceConsts.cs index 5c84ad5c46..90da26982e 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsRemoteServiceConsts.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public static class DocsRemoteServiceConsts { public const string RemoteServiceName = "AbpDocs"; + + public const string ModuleName = "docs"; } } diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs index 14092bff61..9316f8eb97 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs @@ -7,7 +7,7 @@ using Volo.Abp.AspNetCore.Mvc; namespace Volo.Docs.Documents { [RemoteService(Name = DocsRemoteServiceConsts.RemoteServiceName)] - [Area("docs")] + [Area(DocsRemoteServiceConsts.ModuleName)] [ControllerName("Document")] [Route("api/docs/documents")] public class DocsDocumentController : AbpController, IDocumentAppService diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs index 24d9a51491..4e75eed45f 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs @@ -8,7 +8,7 @@ using Volo.Docs.Documents; namespace Volo.Docs.Projects { [RemoteService(Name = DocsRemoteServiceConsts.RemoteServiceName)] - [Area("docs")] + [Area(DocsRemoteServiceConsts.ModuleName)] [ControllerName("Project")] [Route("api/docs/projects")] public class DocsProjectController : AbpControllerBase, IProjectAppService diff --git a/modules/docs/src/Volo.Docs.Web/Areas/Documents/DocumentResourceController.cs b/modules/docs/src/Volo.Docs.Web/Areas/Documents/DocumentResourceController.cs index 60e087b9a6..0f444a0172 100644 --- a/modules/docs/src/Volo.Docs.Web/Areas/Documents/DocumentResourceController.cs +++ b/modules/docs/src/Volo.Docs.Web/Areas/Documents/DocumentResourceController.cs @@ -10,7 +10,7 @@ using Volo.Docs.Documents; namespace Volo.Docs.Areas.Documents { [RemoteService(Name = DocsRemoteServiceConsts.RemoteServiceName)] - [Area("docs")] + [Area(DocsRemoteServiceConsts.ModuleName)] [ControllerName("DocumentResource")] [Route("document-resources")] public class DocumentResourceController : AbpController diff --git a/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs b/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs index 6048eac619..77f5bec551 100644 --- a/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs +++ b/modules/docs/src/Volo.Docs.Web/DocsWebModule.cs @@ -9,6 +9,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Packages; using Volo.Abp.AspNetCore.Mvc.UI.Packages.Prismjs; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; using Volo.Docs.Bundling; @@ -85,6 +86,11 @@ namespace Volo.Docs .Extensions() .Add(); }); + + Configure(options => + { + options.DisableModule(DocsRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/feature-management/Volo.Abp.FeatureManagement.sln b/modules/feature-management/Volo.Abp.FeatureManagement.sln index 11e32bd6e7..85a1db61a3 100644 --- a/modules/feature-management/Volo.Abp.FeatureManagement.sln +++ b/modules/feature-management/Volo.Abp.FeatureManagement.sln @@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.FeatureManagement. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.FeatureManagement.Blazor.WebAssembly", "src\Volo.Abp.FeatureManagement.Blazor.WebAssembly\Volo.Abp.FeatureManagement.Blazor.WebAssembly.csproj", "{A96771F7-65D7-43C2-818E-CF0F5DBC3DC6}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.FeatureManagement.Installer", "src\Volo.Abp.FeatureManagement.Installer\Volo.Abp.FeatureManagement.Installer.csproj", "{0141EA97-1E9E-49D8-B7B4-8A82589A5BFF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -115,6 +117,10 @@ Global {A96771F7-65D7-43C2-818E-CF0F5DBC3DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU {A96771F7-65D7-43C2-818E-CF0F5DBC3DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU {A96771F7-65D7-43C2-818E-CF0F5DBC3DC6}.Release|Any CPU.Build.0 = Release|Any CPU + {0141EA97-1E9E-49D8-B7B4-8A82589A5BFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0141EA97-1E9E-49D8-B7B4-8A82589A5BFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0141EA97-1E9E-49D8-B7B4-8A82589A5BFF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0141EA97-1E9E-49D8-B7B4-8A82589A5BFF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -137,6 +143,7 @@ Global {0F34FFD5-E98F-4F77-AE0B-A790BD5810D5} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} {5B2EA81B-9FAE-456E-B83B-58205AA48752} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} {A96771F7-65D7-43C2-818E-CF0F5DBC3DC6} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} + {0141EA97-1E9E-49D8-B7B4-8A82589A5BFF} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureManagementRemoteServiceConsts.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureManagementRemoteServiceConsts.cs index c941a1b7eb..38e168ef8a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureManagementRemoteServiceConsts.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureManagementRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class FeatureManagementRemoteServiceConsts { public const string RemoteServiceName = "AbpFeatureManagement"; + + public const string ModuleName = "featureManagement"; } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json index f59d326d2b..ba77671388 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo/Abp/FeatureManagement/Localization/Domain/it.json @@ -3,8 +3,8 @@ "texts": { "Features": "Funzionalità", "NoFeatureFoundMessage": "Non ci sono funzioni disponibili.", - "Permission:FeatureManagement": "Gestione delle funzionalità", + "Permission:FeatureManagement": "Gestione funzionalità", "Permission:FeatureManagement.ManageHostFeatures": "Gestisci le funzionalità dell'host", "Volo.Abp.FeatureManagement:InvalidFeatureValue": "Il valore dell'elemento {0} non è valido!" } -} \ No newline at end of file +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs index 4a70fefdd9..42d572b38d 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs @@ -5,7 +5,7 @@ using Volo.Abp.AspNetCore.Mvc; namespace Volo.Abp.FeatureManagement { [RemoteService(Name = FeatureManagementRemoteServiceConsts.RemoteServiceName)] - [Area("featureManagement")] + [Area(FeatureManagementRemoteServiceConsts.ModuleName)] [Route("api/feature-management/features")] public class FeaturesController : AbpControllerBase, IFeatureAppService { diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/FodyWeavers.xml b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/FodyWeavers.xsd b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo.Abp.FeatureManagement.Installer.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo.Abp.FeatureManagement.Installer.csproj new file mode 100644 index 0000000000..de78fd2a68 --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo.Abp.FeatureManagement.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo/Abp/FeatureManagement/AbpFeatureManagementInstallerModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo/Abp/FeatureManagement/AbpFeatureManagementInstallerModule.cs new file mode 100644 index 0000000000..da0b5836ff --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo/Abp/FeatureManagement/AbpFeatureManagementInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.FeatureManagement +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpFeatureManagementInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo/Abp/FeatureManagement/FeatureManagementInstallerPipelineBuilder.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo/Abp/FeatureManagement/FeatureManagementInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..335b770edd --- /dev/null +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Installer/Volo/Abp/FeatureManagement/FeatureManagementInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.FeatureManagement +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class FeatureManagementInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.FeatureManagement.EntityFrameworkCore", + "ConfigureFeatureManagement" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs index b7661b1f4a..31816eb0d3 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/AbpFeatureManagementWebModule.cs @@ -4,6 +4,7 @@ using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AutoMapper; using Volo.Abp.FeatureManagement.Localization; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.VirtualFileSystem; @@ -46,6 +47,11 @@ namespace Volo.Abp.FeatureManagement { //Configure authorization. }); + + Configure(options => + { + options.DisableModule(FeatureManagementRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json new file mode 100644 index 0000000000..f5c9f5f12e --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.Identity.Application.Contracts", + "hash": "7d48962330d53c649b5db86b7e77bce9", + "contents": [ + { + "namespace": "Volo.Abp.Identity", + "contentType": "abpModule", + "name": "AbpIdentityApplicationContractsModule" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj index e6241c927d..5beb6a2668 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj @@ -21,4 +21,14 @@ + + + + true + Never + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityRemoteServiceConsts.cs b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityRemoteServiceConsts.cs index 2e151f54b7..667fbbece2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityRemoteServiceConsts.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public static class IdentityRemoteServiceConsts { public const string RemoteServiceName = "AbpIdentity"; + + public const string ModuleName = "identity"; } } diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json new file mode 100644 index 0000000000..56179082c7 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.abppkg.analyze.json @@ -0,0 +1,127 @@ +{ + "name": "Volo.Abp.Identity.Application", + "hash": "4e28f54b13b3299ac1f5ee664729ec40", + "contents": [ + { + "namespace": "Volo.Abp.Identity", + "contentType": "abpModule", + "name": "AbpIdentityApplicationModule" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "implementingInterfaces": [ + "Volo.Abp.Identity.IIdentityRoleAppService", + "Volo.Abp.Application.Services.ICrudAppService`5[[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.ICrudAppService`6[[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.IReadOnlyAppService`4[[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.GetIdentityRolesInput, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.ICreateUpdateAppService`4[[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.ICreateAppService`2[[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityRoleCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.IUpdateAppService`3[[Volo.Abp.Identity.IdentityRoleDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.IdentityRoleUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.IDeleteAppService`1[[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + ], + "contentType": "applicationService", + "name": "IdentityRoleAppService" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "implementingInterfaces": [ + "Volo.Abp.Identity.IIdentityUserAppService", + "Volo.Abp.Application.Services.ICrudAppService`5[[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.ICrudAppService`6[[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.IReadOnlyAppService`4[[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.GetIdentityUsersInput, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.ICreateUpdateAppService`4[[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.ICreateAppService`2[[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[Volo.Abp.Identity.IdentityUserCreateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.IUpdateAppService`3[[Volo.Abp.Identity.IdentityUserDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Volo.Abp.Identity.IdentityUserUpdateDto, Volo.Abp.Identity.Application.Contracts, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null]]", + "Volo.Abp.Application.Services.IDeleteAppService`1[[System.Guid, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]" + ], + "contentType": "applicationService", + "name": "IdentityUserAppService" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "implementingInterfaces": [ + "Volo.Abp.Identity.IIdentityUserLookupAppService" + ], + "contentType": "applicationService", + "name": "IdentityUserLookupAppService" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "implementingInterfaces": [ + "Volo.Abp.Identity.IProfileAppService" + ], + "contentType": "applicationService", + "name": "ProfileAppService" + }, + { + "displayName": "Role management", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Roles" + }, + { + "displayName": "Create", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Roles.Create" + }, + { + "displayName": "Edit", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Roles.Update" + }, + { + "displayName": "Delete", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Roles.Delete" + }, + { + "displayName": "Change permissions", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Roles.ManagePermissions" + }, + { + "displayName": "User management", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Users" + }, + { + "displayName": "Create", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Users.Create" + }, + { + "displayName": "Edit", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Users.Update" + }, + { + "displayName": "Delete", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Users.Delete" + }, + { + "displayName": "Change permissions", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.Users.ManagePermissions" + }, + { + "displayName": "User lookup", + "isEnabled": true, + "contentType": "permission", + "name": "AbpIdentity.UserLookup" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj index fc01ba4400..a256285e56 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj @@ -21,4 +21,14 @@ + + + + true + Never + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs index 4c28e37f01..7b166152b0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs @@ -1,5 +1,4 @@ using AutoMapper; -using Volo.Abp.AutoMapper; namespace Volo.Abp.Identity { @@ -12,11 +11,6 @@ namespace Volo.Abp.Identity CreateMap() .MapExtraProperties(); - - CreateMap() - .ForMember(dest => dest.HasPassword, - op => op.MapFrom(src => src.PasswordHash != null)) - .MapExtraProperties(); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json new file mode 100644 index 0000000000..eae6233b7e --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.Identity.Domain.Shared", + "hash": "7db38ac2a2f335158964c4d06d0dfaab", + "contents": [ + { + "namespace": "Volo.Abp.Identity", + "contentType": "abpModule", + "name": "AbpIdentityDomainSharedModule" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj index ddd23ab870..ddc85df885 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj @@ -18,6 +18,13 @@ + + + true + Never + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json index 1199298be0..906ecb249d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/Localization/it.json @@ -1,7 +1,7 @@ { "culture": "it", "texts": { - "Menu:IdentityManagement": "Gestione dell'identità", + "Menu:IdentityManagement": "Gestione identità", "Users": "Utenti", "NewUser": "Nuovo utente", "UserName": "Nome utente", @@ -15,8 +15,8 @@ "Password": "Password", "PersonalInfo": "Il mio profilo", "PersonalSettings": "Impostazioni personali", - "UserDeletionConfirmationMessage": "L'utente '{0}' verrà eliminato. Lo confermi?", - "RoleDeletionConfirmationMessage": "Il ruolo '{0}' verrà eliminato. Lo confermi?", + "UserDeletionConfirmationMessage": "L'utente '{0}' verrà eliminato. Confermi?", + "RoleDeletionConfirmationMessage": "Il ruolo '{0}' verrà eliminato. Confermi?", "DisplayName:RoleName": "Nome del ruolo", "DisplayName:UserName": "Nome utente", "DisplayName:Name": "Nome", @@ -33,7 +33,7 @@ "DisplayName:CurrentPassword": "Password attuale", "DisplayName:NewPassword": "Nuova password", "DisplayName:NewPasswordConfirm": "Conferma la nuova password", - "PasswordChangedMessage": "La tua password è stata cambiata con successo.", + "PasswordChangedMessage": "La tua password è stata modificata con successo.", "PersonalSettingsSavedMessage": "Le tue impostazioni personali sono state salvate con successo.", "Volo.Abp.Identity:DefaultError": "Si è verificato un errore sconosciuto.", "Volo.Abp.Identity:ConcurrencyFailure": "Errore di concorrenza ottimistica, l'oggetto è stato modificato.", @@ -46,13 +46,13 @@ "Volo.Abp.Identity:InvalidRoleName": "Il nome del ruolo '{0}' non è valido.", "Volo.Abp.Identity:InvalidToken": "Token non valido.", "Volo.Abp.Identity:InvalidUserName": "Il nome utente '{0}' non è valido, può contenere solo lettere o cifre.", - "Volo.Abp.Identity:LoginAlreadyAssociated": "Esiste già un utente con questo accesso.", + "Volo.Abp.Identity:LoginAlreadyAssociated": "Esiste già un utente con questo account.", "Volo.Abp.Identity:PasswordMismatch": "Password errata.", - "Volo.Abp.Identity:PasswordRequiresDigit": "Le password devono contenere almeno una cifra ('0'-'9').", - "Volo.Abp.Identity:PasswordRequiresLower": "Le password devono contenere almeno una minuscola ('a'-'z').", - "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "Le password devono contenere almeno un carattere non alfanumerico.", - "Volo.Abp.Identity:PasswordRequiresUpper": "Le password devono contenere almeno una maiuscola ('A'-'Z').", - "Volo.Abp.Identity:PasswordTooShort": "Le password devono contenere almeno {0} caratteri.", + "Volo.Abp.Identity:PasswordRequiresDigit": "La password deve contenere almeno una cifra ('0'-'9').", + "Volo.Abp.Identity:PasswordRequiresLower": "La password deve contenere almeno una lettera minuscola ('a'-'z').", + "Volo.Abp.Identity:PasswordRequiresNonAlphanumeric": "La password deve contenere almeno un carattere non alfanumerico.", + "Volo.Abp.Identity:PasswordRequiresUpper": "La password deve contenere almeno una lettera maiuscola ('A'-'Z').", + "Volo.Abp.Identity:PasswordTooShort": "La password deve essere composta da almeno {0} caratteri.", "Volo.Abp.Identity:RoleNotFound": "Il ruolo {0} non esiste.", "Volo.Abp.Identity:UserAlreadyHasPassword": "L'utente ha già una password impostata.", "Volo.Abp.Identity:UserAlreadyInRole": "Utente già nel ruolo '{0}'.", @@ -67,11 +67,11 @@ "Volo.Abp.Identity:010004": "Esiste già un'unità organizzativa con nome {0}. Non è possibile creare due unità con lo stesso nome nello stesso livello.", "Volo.Abp.Identity:010005": "I ruoli statici non possono essere rinominati.", "Volo.Abp.Identity:010006": "I ruoli statici non possono essere eliminati.", - "Volo.Abp.Identity:010007": "Non puoi Modifica l'impostazione dei due fattori.", - "Volo.Abp.Identity:010008": "Non è consentito Modifica l'impostazione a due fattori.", + "Volo.Abp.Identity:010007": "Non puoi modificare l'impostazione dei due fattori.", + "Volo.Abp.Identity:010008": "Non è consentito modificare l'impostazione a due fattori.", "Identity.OrganizationUnit.MaxUserMembershipCount": "Numero massimo consentito di membri dell'unità organizzativa per un utente", - "Permission:IdentityManagement": "Gestione dell'identità", - "Permission:RoleManagement": "Gestione dei ruoli", + "Permission:IdentityManagement": "Gestione identità", + "Permission:RoleManagement": "Gestione ruoli", "Permission:Create": "Crea", "Permission:Edit": "Modifica", "Permission:Delete": "Elimina", @@ -92,19 +92,19 @@ "DisplayName:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Richiedi un numero di telefono confermato", "DisplayName:Abp.Identity.User.IsUserNameUpdateEnabled": "Consenti agli utenti di Modifica i propri nomi utente", "DisplayName:Abp.Identity.User.IsEmailUpdateEnabled": "Consenti agli utenti di Modifica i propri indirizzi email", - "Description:Abp.Identity.Password.RequiredLength": "La lunghezza minima che deve essere una password.", + "Description:Abp.Identity.Password.RequiredLength": "La lunghezza minima di caratteri della password.", "Description:Abp.Identity.Password.RequiredUniqueChars": "Il numero minimo di caratteri univoci che una password deve contenere.", - "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Se le password devono contenere un carattere non alfanumerico.", - "Description:Abp.Identity.Password.RequireLowercase": "Se le password devono contenere un carattere ASCII minuscolo.", - "Description:Abp.Identity.Password.RequireUppercase": "Se le password devono contenere un carattere ASCII maiuscolo.", - "Description:Abp.Identity.Password.RequireDigit": "Se le password devono contenere una cifra.", + "Description:Abp.Identity.Password.RequireNonAlphanumeric": "Se la password deve contenere un carattere non alfanumerico.", + "Description:Abp.Identity.Password.RequireLowercase": "Se la password deve contenere un carattere ASCII minuscolo.", + "Description:Abp.Identity.Password.RequireUppercase": "Se la password deve contenere un carattere ASCII maiuscolo.", + "Description:Abp.Identity.Password.RequireDigit": "Se la password devono contenere una cifra.", "Description:Abp.Identity.Lockout.AllowedForNewUsers": "Se un nuovo utente può essere bloccato.", "Description:Abp.Identity.Lockout.LockoutDuration": "La durata per cui un utente viene bloccato quando si verifica un blocco.", "Description:Abp.Identity.Lockout.MaxFailedAccessAttempts": "Il numero di tentativi di accesso non riusciti consentiti prima che un utente venga bloccato, a condizione che il blocco sia abilitato.", "Description:Abp.Identity.SignIn.RequireConfirmedEmail": "Indica se è necessario un indirizzo email confermato per accedere.", - "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Se il phoneNumber può essere confermato dall'utente.", + "Description:Abp.Identity.SignIn.EnablePhoneNumberConfirmation": "Se il numero di telefono può essere confermato dall'utente.", "Description:Abp.Identity.SignIn.RequireConfirmedPhoneNumber": "Indica se è necessario un numero di telefono confermato per accedere.", "Description:Abp.Identity.User.IsUserNameUpdateEnabled": "Se il nome utente può essere aggiornato dall'utente.", "Description:Abp.Identity.User.IsEmailUpdateEnabled": "Se l'email può essere aggiornata dall'utente." } -} \ No newline at end of file +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json new file mode 100644 index 0000000000..4011e6d04b --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.abppkg.analyze.json @@ -0,0 +1,205 @@ +{ + "name": "Volo.Abp.Identity.Domain", + "hash": "7736ef4a79faf05ed7e6097700d560ce", + "contents": [ + { + "namespace": "Volo.Abp.Identity", + "contentType": "abpModule", + "name": "AbpIdentityDomainModule" + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [], + "navigationProperties": [], + "contentType": "aggregateRoot", + "name": "IdentityClaimType" + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [], + "navigationProperties": [], + "contentType": "aggregateRoot", + "name": "IdentityLinkUser" + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": "Represents a role in the identity system", + "collectionProperties": [ + "Volo.Abp.Identity.IdentityRoleClaim" + ], + "navigationProperties": [], + "contentType": "aggregateRoot", + "name": "IdentityRole" + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [], + "navigationProperties": [], + "contentType": "aggregateRoot", + "name": "IdentitySecurityLog" + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [ + "Volo.Abp.Identity.IdentityUserRole", + "Volo.Abp.Identity.IdentityUserClaim", + "Volo.Abp.Identity.IdentityUserLogin", + "Volo.Abp.Identity.IdentityUserToken", + "Volo.Abp.Identity.IdentityUserOrganizationUnit" + ], + "navigationProperties": [], + "contentType": "aggregateRoot", + "name": "IdentityUser" + }, + { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": "Represents an organization unit (OU).", + "collectionProperties": [ + "Volo.Abp.Identity.OrganizationUnitRole" + ], + "navigationProperties": [], + "contentType": "aggregateRoot", + "name": "OrganizationUnit" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "contentType": "domainService", + "name": "IdentityClaimTypeManager" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "contentType": "domainService", + "name": "IdentityRoleManager" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "contentType": "domainService", + "name": "IdentityLinkUserManager" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "contentType": "domainService", + "name": "IdentityUserManager" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": "Performs domain logic for Organization Units.", + "contentType": "domainService", + "name": "OrganizationUnitManager" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "entityModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [], + "navigationProperties": [], + "contentType": "entity", + "name": "IdentityClaimType" + }, + "contentType": "repositoryInterface", + "name": "IIdentityClaimTypeRepository" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "entityModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [], + "navigationProperties": [], + "contentType": "entity", + "name": "IdentityLinkUser" + }, + "contentType": "repositoryInterface", + "name": "IIdentityLinkUserRepository" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "entityModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": "Represents a role in the identity system", + "collectionProperties": [ + "Volo.Abp.Identity.IdentityRoleClaim" + ], + "navigationProperties": [], + "contentType": "entity", + "name": "IdentityRole" + }, + "contentType": "repositoryInterface", + "name": "IIdentityRoleRepository" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "entityModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [], + "navigationProperties": [], + "contentType": "entity", + "name": "IdentitySecurityLog" + }, + "contentType": "repositoryInterface", + "name": "IIdentitySecurityLogRepository" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "entityModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": null, + "collectionProperties": [ + "Volo.Abp.Identity.IdentityUserRole", + "Volo.Abp.Identity.IdentityUserClaim", + "Volo.Abp.Identity.IdentityUserLogin", + "Volo.Abp.Identity.IdentityUserToken", + "Volo.Abp.Identity.IdentityUserOrganizationUnit" + ], + "navigationProperties": [], + "contentType": "entity", + "name": "IdentityUser" + }, + "contentType": "repositoryInterface", + "name": "IIdentityUserRepository" + }, + { + "namespace": "Volo.Abp.Identity", + "summary": null, + "entityModel": { + "namespace": "Volo.Abp.Identity", + "primaryKeyType": "Guid", + "summary": "Represents an organization unit (OU).", + "collectionProperties": [ + "Volo.Abp.Identity.OrganizationUnitRole" + ], + "navigationProperties": [], + "contentType": "entity", + "name": "OrganizationUnit" + }, + "contentType": "repositoryInterface", + "name": "IOrganizationUnitRepository" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj index e951457688..f5f5e5f00d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj @@ -18,6 +18,13 @@ + + + true + Never + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs index 5675bf1fd4..d4a3f9aff3 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs @@ -58,6 +58,9 @@ namespace Volo.Abp.Identity bool includeDetails = false, Guid? roleId = null, Guid? organizationUnitId = null, + string userName = null, + string phoneNumber = null, + string emailAddress = null, CancellationToken cancellationToken = default ); @@ -90,6 +93,9 @@ namespace Volo.Abp.Identity string filter = null, Guid? roleId = null, Guid? organizationUnitId = null, + string userName = null, + string phoneNumber = null, + string emailAddress = null, CancellationToken cancellationToken = default ); } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentitySecurityLog.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentitySecurityLog.cs index b8efbc117f..729b82b7fc 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentitySecurityLog.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentitySecurityLog.cs @@ -56,6 +56,11 @@ namespace Volo.Abp.Identity ClientId = securityLogInfo.ClientId.Truncate(IdentitySecurityLogConsts.MaxClientIdLength); CorrelationId = securityLogInfo.CorrelationId.Truncate(IdentitySecurityLogConsts.MaxCorrelationIdLength); BrowserInfo = securityLogInfo.BrowserInfo.Truncate(IdentitySecurityLogConsts.MaxBrowserInfoLength); + + foreach (var property in securityLogInfo.ExtraProperties) + { + ExtraProperties.Add(property.Key, property.Value); + } } } } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json new file mode 100644 index 0000000000..0c0d76de69 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.abppkg.analyze.json @@ -0,0 +1,84 @@ +{ + "name": "Volo.Abp.Identity.EntityFrameworkCore", + "hash": "8f270f0242f12d428caba0db20954d9e", + "contents": [ + { + "namespace": "Volo.Abp.Identity.EntityFrameworkCore", + "contentType": "abpModule", + "name": "AbpIdentityEntityFrameworkCoreModule" + }, + { + "namespace": "Volo.Abp.Identity.EntityFrameworkCore", + "connectionStringName": "AbpIdentity", + "databaseTables": [ + { + "entityFullName": "Volo.Abp.Identity.IdentityClaimType", + "contentType": "databaseTable", + "name": "AbpClaimTypes" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityLinkUser", + "contentType": "databaseTable", + "name": "AbpLinkUsers" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityRole", + "contentType": "databaseTable", + "name": "AbpRoles" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityRoleClaim", + "contentType": "databaseTable", + "name": "AbpRoleClaims" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentitySecurityLog", + "contentType": "databaseTable", + "name": "AbpSecurityLogs" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUser", + "contentType": "databaseTable", + "name": "AbpUsers" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUserClaim", + "contentType": "databaseTable", + "name": "AbpUserClaims" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUserLogin", + "contentType": "databaseTable", + "name": "AbpUserLogins" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUserOrganizationUnit", + "contentType": "databaseTable", + "name": "AbpUserOrganizationUnits" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUserRole", + "contentType": "databaseTable", + "name": "AbpUserRoles" + }, + { + "entityFullName": "Volo.Abp.Identity.IdentityUserToken", + "contentType": "databaseTable", + "name": "AbpUserTokens" + }, + { + "entityFullName": "Volo.Abp.Identity.OrganizationUnit", + "contentType": "databaseTable", + "name": "AbpOrganizationUnits" + }, + { + "entityFullName": "Volo.Abp.Identity.OrganizationUnitRole", + "contentType": "databaseTable", + "name": "AbpOrganizationUnitRoles" + } + ], + "contentType": "efCoreDbContext", + "name": "IdentityDbContext" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj index 41cf02d96e..bb9b865a0d 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj @@ -19,4 +19,14 @@ + + + + true + Never + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs index 01d1147372..bdb03591c1 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs @@ -138,6 +138,9 @@ namespace Volo.Abp.Identity.EntityFrameworkCore bool includeDetails = false, Guid? roleId = null, Guid? organizationUnitId = null, + string userName = null, + string phoneNumber = null, + string emailAddress = null, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) @@ -153,6 +156,9 @@ namespace Volo.Abp.Identity.EntityFrameworkCore ) .WhereIf(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) + .WhereIf(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) + .WhereIf(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) + .WhereIf(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityUser.UserName) : sorting) .PageBy(skipCount, maxResultCount) .ToListAsync(GetCancellationToken(cancellationToken)); @@ -193,6 +199,9 @@ namespace Volo.Abp.Identity.EntityFrameworkCore string filter = null, Guid? roleId = null, Guid? organizationUnitId = null, + string userName = null, + string phoneNumber = null, + string emailAddress = null, CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()) @@ -207,6 +216,9 @@ namespace Volo.Abp.Identity.EntityFrameworkCore ) .WhereIf(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) + .WhereIf(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) + .WhereIf(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) + .WhereIf(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) .LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/identity-generate-proxy.json b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/identity-generate-proxy.json index 00dd299ce9..c082a7bda4 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/identity-generate-proxy.json +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/ClientProxies/identity-generate-proxy.json @@ -903,110 +903,9 @@ "implementFrom": "Volo.Abp.Identity.IIdentityUserLookupAppService" } } - }, - "Volo.Abp.Identity.ProfileController": { - "controllerName": "Profile", - "controllerGroupName": "Profile", - "type": "Volo.Abp.Identity.ProfileController", - "interfaces": [ - { - "type": "Volo.Abp.Identity.IProfileAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/identity/my-profile", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" - }, - "UpdateAsyncByInput": { - "uniqueName": "UpdateAsyncByInput", - "name": "UpdateAsync", - "httpMethod": "PUT", - "url": "api/identity/my-profile", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.UpdateProfileDto, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.UpdateProfileDto", - "typeSimple": "Volo.Abp.Identity.UpdateProfileDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "Volo.Abp.Identity.ProfileDto", - "typeSimple": "Volo.Abp.Identity.ProfileDto" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" - }, - "ChangePasswordAsyncByInput": { - "uniqueName": "ChangePasswordAsyncByInput", - "name": "ChangePasswordAsync", - "httpMethod": "POST", - "url": "api/identity/my-profile/change-password", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "Volo.Abp.Identity.ChangePasswordInput, Volo.Abp.Identity.Application.Contracts", - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "Volo.Abp.Identity.ChangePasswordInput", - "typeSimple": "Volo.Abp.Identity.ChangePasswordInput", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "System.Void", - "typeSimple": "System.Void" - }, - "allowAnonymous": null, - "implementFrom": "Volo.Abp.Identity.IProfileAppService" - } - } } } } }, "types": {} -} \ No newline at end of file +} diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json new file mode 100644 index 0000000000..8853f9be01 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.Identity.HttpApi.Client", + "hash": "774ff4f82e3a8df910bab011545deaeb", + "contents": [ + { + "namespace": "Volo.Abp.Identity", + "contentType": "abpModule", + "name": "AbpIdentityHttpApiClientModule" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj index 5bff2432a7..3584a1db66 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj @@ -19,4 +19,14 @@ + + + + + + true + Never + + + diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json new file mode 100644 index 0000000000..3fab306b7c --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.Identity.HttpApi", + "hash": "ec955af18068942f6dfa1a627f4aeacd", + "contents": [ + { + "namespace": "Volo.Abp.Identity", + "contentType": "abpModule", + "name": "AbpIdentityHttpApiModule" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj index 374001080d..5610c273c4 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj @@ -21,4 +21,18 @@ + + + + true + PreserveNewest + PreserveNewest + + + + true + Never + + + diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs index 38d5f68a41..6c680c86ad 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityRoleController.cs @@ -7,7 +7,7 @@ using Volo.Abp.AspNetCore.Mvc; namespace Volo.Abp.Identity { [RemoteService(Name = IdentityRemoteServiceConsts.RemoteServiceName)] - [Area("identity")] + [Area(IdentityRemoteServiceConsts.ModuleName)] [ControllerName("Role")] [Route("api/identity/roles")] public class IdentityRoleController : AbpControllerBase, IIdentityRoleAppService diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs index 7de9de2826..9dd071f934 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs @@ -7,7 +7,7 @@ using Volo.Abp.AspNetCore.Mvc; namespace Volo.Abp.Identity { [RemoteService(Name = IdentityRemoteServiceConsts.RemoteServiceName)] - [Area("identity")] + [Area(IdentityRemoteServiceConsts.ModuleName)] [ControllerName("User")] [Route("api/identity/users")] public class IdentityUserController : AbpControllerBase, IIdentityUserAppService diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserLookupController.cs b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserLookupController.cs index d0676ffb7d..b63bed3886 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserLookupController.cs +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserLookupController.cs @@ -8,7 +8,7 @@ using Volo.Abp.Users; namespace Volo.Abp.Identity { [RemoteService(Name = IdentityRemoteServiceConsts.RemoteServiceName)] - [Area("identity")] + [Area(IdentityRemoteServiceConsts.ModuleName)] [ControllerName("UserLookup")] [Route("api/identity/users/lookup")] public class IdentityUserLookupController : AbpControllerBase, IIdentityUserLookupAppService diff --git a/modules/identity/src/Volo.Abp.Identity.Installer/FodyWeavers.xml b/modules/identity/src/Volo.Abp.Identity.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Installer/FodyWeavers.xsd b/modules/identity/src/Volo.Abp.Identity.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Installer/Volo.Abp.Identity.Installer.csproj b/modules/identity/src/Volo.Abp.Identity.Installer/Volo.Abp.Identity.Installer.csproj new file mode 100644 index 0000000000..80a1b51bb0 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Installer/Volo.Abp.Identity.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Installer/Volo/Abp/Identity/AbpIdentityInstallerModule.cs b/modules/identity/src/Volo.Abp.Identity.Installer/Volo/Abp/Identity/AbpIdentityInstallerModule.cs new file mode 100644 index 0000000000..23a1de23a2 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Installer/Volo/Abp/Identity/AbpIdentityInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Studio; +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.Identity +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpIdentityInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Installer/Volo/Abp/Identity/IdentityInstallerPipelineBuilder.cs b/modules/identity/src/Volo.Abp.Identity.Installer/Volo/Abp/Identity/IdentityInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..8f2f75c30c --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Installer/Volo/Abp/Identity/IdentityInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.Identity +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class IdentityInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.Identity.EntityFrameworkCore", + "ConfigureIdentity" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs index 83181a6af8..318c0ae4ad 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs @@ -140,6 +140,9 @@ namespace Volo.Abp.Identity.MongoDB bool includeDetails = false, Guid? roleId = null, Guid? organizationUnitId = null, + string userName = null, + string phoneNumber = null, + string emailAddress = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) @@ -154,6 +157,9 @@ namespace Volo.Abp.Identity.MongoDB ) .WhereIf>(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) + .WhereIf>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) + .WhereIf>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) + .WhereIf>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) .OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityUser.UserName) : sorting) .As>() .PageBy>(skipCount, maxResultCount) @@ -201,6 +207,9 @@ namespace Volo.Abp.Identity.MongoDB string filter = null, Guid? roleId = null, Guid? organizationUnitId = null, + string userName = null, + string phoneNumber = null, + string emailAddress = null, CancellationToken cancellationToken = default) { return await (await GetMongoQueryableAsync(cancellationToken)) @@ -215,6 +224,9 @@ namespace Volo.Abp.Identity.MongoDB ) .WhereIf>(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value)) .WhereIf>(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value)) + .WhereIf>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName) + .WhereIf>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber) + .WhereIf>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress) .LongCountAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs index df93e54fe5..0b0e15d447 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs @@ -4,6 +4,7 @@ using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Identity.Localization; using Volo.Abp.Identity.Web.Navigation; using Volo.Abp.Localization; @@ -66,8 +67,8 @@ namespace Volo.Abp.Identity.Web options.Conventions.AuthorizePage("/Identity/Roles/CreateModal", IdentityPermissions.Roles.Create); options.Conventions.AuthorizePage("/Identity/Roles/EditModal", IdentityPermissions.Roles.Update); }); - - + + Configure(options => { options.Configure( @@ -81,7 +82,7 @@ namespace Volo.Abp.Identity.Web ); } ); - + options.Configure( toolbar => { @@ -94,6 +95,11 @@ namespace Volo.Abp.Identity.Web } ); }); + + Configure(options => + { + options.DisableModule(IdentityRemoteServiceConsts.ModuleName); + }); } public override void PostConfigureServices(ServiceConfigurationContext context) @@ -107,7 +113,7 @@ namespace Volo.Abp.Identity.Web createFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.CreateModalModel.RoleInfoModel) }, editFormTypes: new[] { typeof(Volo.Abp.Identity.Web.Pages.Identity.Roles.EditModalModel.RoleInfoModel) } ); - + ModuleExtensionConfigurationHelper .ApplyEntityConfigurationToUi( IdentityModuleExtensionConsts.ModuleName, diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js index 5b4091810b..e6f5810c9d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js @@ -63,6 +63,7 @@ .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); }, } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js index 28e7581cb1..96ee7e5361 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js @@ -58,6 +58,7 @@ .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); }, } diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json new file mode 100644 index 0000000000..0ff75daa7f --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.Identity.Web", + "hash": "e8d9278c1f4324ce9c89a3045da71d43", + "contents": [ + { + "namespace": "Volo.Abp.Identity.Web", + "contentType": "abpModule", + "name": "AbpIdentityWebModule" + } + ] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Web/wwwroot/client-proxies/identity-proxy.js b/modules/identity/src/Volo.Abp.Identity.Web/wwwroot/client-proxies/identity-proxy.js index 824b5cbdeb..250abbc47b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/wwwroot/client-proxies/identity-proxy.js +++ b/modules/identity/src/Volo.Abp.Identity.Web/wwwroot/client-proxies/identity-proxy.js @@ -177,38 +177,6 @@ })(); - // controller volo.abp.identity.profile - - (function(){ - - abp.utils.createNamespace(window, 'volo.abp.identity.profile'); - - volo.abp.identity.profile.get = function(ajaxParams) { - return abp.ajax($.extend(true, { - url: abp.appPath + 'api/identity/my-profile', - type: 'GET' - }, ajaxParams)); - }; - - volo.abp.identity.profile.update = function(input, ajaxParams) { - return abp.ajax($.extend(true, { - url: abp.appPath + 'api/identity/my-profile', - type: 'PUT', - data: JSON.stringify(input) - }, ajaxParams)); - }; - - volo.abp.identity.profile.changePassword = function(input, ajaxParams) { - return abp.ajax($.extend(true, { - url: abp.appPath + 'api/identity/my-profile/change-password', - type: 'POST', - dataType: null, - data: JSON.stringify(input) - }, ajaxParams)); - }; - - })(); - })(); diff --git a/modules/identityserver/Volo.Abp.IdentityServer.sln b/modules/identityserver/Volo.Abp.IdentityServer.sln index 93dd971d47..0006ded671 100644 --- a/modules/identityserver/Volo.Abp.IdentityServer.sln +++ b/modules/identityserver/Volo.Abp.IdentityServer.sln @@ -25,6 +25,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.IdentityServer.Dom EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.Domain.IdentityServer", "src\Volo.Abp.PermissionManagement.Domain.IdentityServer\Volo.Abp.PermissionManagement.Domain.IdentityServer.csproj", "{072BD630-FB89-45FC-BA2D-12A9745AAB93}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.IdentityServer.Installer", "src\Volo.Abp.IdentityServer.Installer\Volo.Abp.IdentityServer.Installer.csproj", "{E8C9972C-8AA9-4E30-8290-C93FEA00D374}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -67,6 +69,10 @@ Global {072BD630-FB89-45FC-BA2D-12A9745AAB93}.Debug|Any CPU.Build.0 = Debug|Any CPU {072BD630-FB89-45FC-BA2D-12A9745AAB93}.Release|Any CPU.ActiveCfg = Release|Any CPU {072BD630-FB89-45FC-BA2D-12A9745AAB93}.Release|Any CPU.Build.0 = Release|Any CPU + {E8C9972C-8AA9-4E30-8290-C93FEA00D374}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8C9972C-8AA9-4E30-8290-C93FEA00D374}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8C9972C-8AA9-4E30-8290-C93FEA00D374}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8C9972C-8AA9-4E30-8290-C93FEA00D374}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -81,6 +87,7 @@ Global {2E18B471-7FCA-497B-90FF-6AA9172CC62F} = {2C792EC1-BA27-44ED-B7CC-D0939553F1B2} {0680D0B6-51C0-4812-8A0B-192FDE717E60} = {2C792EC1-BA27-44ED-B7CC-D0939553F1B2} {072BD630-FB89-45FC-BA2D-12A9745AAB93} = {59A0FC0F-EA6D-477B-84A7-3B1E41B4C858} + {E8C9972C-8AA9-4E30-8290-C93FEA00D374} = {59A0FC0F-EA6D-477B-84A7-3B1E41B4C858} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {45562023-C330-4060-A583-2BA10F472D3D} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json new file mode 100644 index 0000000000..504cacafca --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.IdentityServer.Domain.Shared", + "hash": "ce5c24d589a663bc543a334b6a98de00", + "contents": [ + { + "namespace": "Volo.Abp.IdentityServer", + "contentType": "abpModule", + "name": "AbpIdentityServerDomainSharedModule" + } + ] +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json new file mode 100644 index 0000000000..c10e3143b8 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.abppkg.analyze.json @@ -0,0 +1,11 @@ +{ + "name": "Volo.Abp.IdentityServer.EntityFrameworkCore", + "hash": "034f1be234bf02cb8e782935c47c0eeb", + "contents": [ + { + "namespace": "Volo.Abp.IdentityServer.EntityFrameworkCore", + "contentType": "abpModule", + "name": "AbpIdentityServerEntityFrameworkCoreModule" + } + ] +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/FodyWeavers.xml b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/FodyWeavers.xsd b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo.Abp.IdentityServer.Installer.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo.Abp.IdentityServer.Installer.csproj new file mode 100644 index 0000000000..ca7d96ac5d --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo.Abp.IdentityServer.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo/Abp/IdentityServer/AbpIdentityServerInstallerModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo/Abp/IdentityServer/AbpIdentityServerInstallerModule.cs new file mode 100644 index 0000000000..f3b7447744 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo/Abp/IdentityServer/AbpIdentityServerInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.IdentityServer +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpIdentityServerInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo/Abp/IdentityServer/IdentityServerInstallerPipelineBuilder.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo/Abp/IdentityServer/IdentityServerInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..02042215f5 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Installer/Volo/Abp/IdentityServer/IdentityServerInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.IdentityServer +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class IdentityServerInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.IdentityServer.EntityFrameworkCore", + "ConfigureIdentityServer" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/permission-management/Volo.Abp.PermissionManagement.sln b/modules/permission-management/Volo.Abp.PermissionManagement.sln index 6cb7292684..5eb2673282 100644 --- a/modules/permission-management/Volo.Abp.PermissionManagement.sln +++ b/modules/permission-management/Volo.Abp.PermissionManagement.sln @@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManageme EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.Blazor.WebAssembly", "src\Volo.Abp.PermissionManagement.Blazor.WebAssembly\Volo.Abp.PermissionManagement.Blazor.WebAssembly.csproj", "{C8AA18AA-BD1F-4E58-92C6-12F846C02000}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.PermissionManagement.Installer", "src\Volo.Abp.PermissionManagement.Installer\Volo.Abp.PermissionManagement.Installer.csproj", "{A0D67614-A668-45E6-BB8F-8ACE54D8A196}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -115,6 +117,10 @@ Global {C8AA18AA-BD1F-4E58-92C6-12F846C02000}.Debug|Any CPU.Build.0 = Debug|Any CPU {C8AA18AA-BD1F-4E58-92C6-12F846C02000}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8AA18AA-BD1F-4E58-92C6-12F846C02000}.Release|Any CPU.Build.0 = Release|Any CPU + {A0D67614-A668-45E6-BB8F-8ACE54D8A196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0D67614-A668-45E6-BB8F-8ACE54D8A196}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0D67614-A668-45E6-BB8F-8ACE54D8A196}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0D67614-A668-45E6-BB8F-8ACE54D8A196}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -137,6 +143,7 @@ Global {6F899C50-83BB-43C4-983A-DCCD8FBBF066} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} {88B39D54-5289-4D39-B4B9-E7C264ED2996} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} {C8AA18AA-BD1F-4E58-92C6-12F846C02000} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} + {A0D67614-A668-45E6-BB8F-8ACE54D8A196} = {B559B878-38F7-49CC-BC06-43A32D68C1A7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8FC7DF78-5E2D-489F-9D43-147D2ABAA112} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionManagementRemoteServiceConsts.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionManagementRemoteServiceConsts.cs index 4a9644b061..e328039975 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionManagementRemoteServiceConsts.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionManagementRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class PermissionManagementRemoteServiceConsts { public const string RemoteServiceName = "AbpPermissionManagement"; + + public const string ModuleName = "permissionManagement"; } -} \ No newline at end of file +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs index a9a6096053..b21cf4e351 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo/Abp/PermissionManagement/PermissionsController.cs @@ -5,7 +5,7 @@ using Volo.Abp.AspNetCore.Mvc; namespace Volo.Abp.PermissionManagement { [RemoteService(Name = PermissionManagementRemoteServiceConsts.RemoteServiceName)] - [Area("permissionManagement")] + [Area(PermissionManagementRemoteServiceConsts.ModuleName)] [Route("api/permission-management/permissions")] public class PermissionsController : AbpControllerBase, IPermissionAppService { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/FodyWeavers.xml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/FodyWeavers.xsd b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo.Abp.PermissionManagement.Installer.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo.Abp.PermissionManagement.Installer.csproj new file mode 100644 index 0000000000..c1fa844501 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo.Abp.PermissionManagement.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo/Abp/PermissionManagement/AbpPermissionManagementInstallerModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo/Abp/PermissionManagement/AbpPermissionManagementInstallerModule.cs new file mode 100644 index 0000000000..4f82d2996e --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo/Abp/PermissionManagement/AbpPermissionManagementInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.PermissionManagement +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpPermissionManagementInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo/Abp/PermissionManagement/PermissionManagementInstallerPipelineBuilder.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo/Abp/PermissionManagement/PermissionManagementInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..1f47f5cff4 --- /dev/null +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Installer/Volo/Abp/PermissionManagement/PermissionManagementInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.PermissionManagement +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class PermissionManagementInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.PermissionManagement.EntityFrameworkCore", + "ConfigurePermissionManagement" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs index 3e92c5c06e..2029e1be4a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/AbpPermissionManagementWebModule.cs @@ -2,6 +2,7 @@ using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AutoMapper; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.Localization; using Volo.Abp.VirtualFileSystem; @@ -38,6 +39,11 @@ namespace Volo.Abp.PermissionManagement.Web { options.AddProfile(validate: true); }); + + Configure(options => + { + options.DisableModule(PermissionManagementRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionStore_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionStore_Tests.cs index ee0ef168c1..e259114b7c 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionStore_Tests.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionStore_Tests.cs @@ -22,7 +22,6 @@ namespace Volo.Abp.PermissionManagement UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString())).ShouldBeTrue(); - (await _permissionStore.IsGrantedAsync("MyPermission1NotExist", UserPermissionValueProvider.ProviderName, PermissionTestDataBuilder.User1Id.ToString())).ShouldBeFalse(); diff --git a/modules/setting-management/Volo.Abp.SettingManagement.sln b/modules/setting-management/Volo.Abp.SettingManagement.sln index 57a34cf8ac..26db0f3a72 100644 --- a/modules/setting-management/Volo.Abp.SettingManagement.sln +++ b/modules/setting-management/Volo.Abp.SettingManagement.sln @@ -43,6 +43,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.SettingManagement. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.SettingManagement.Blazor.WebAssembly", "src\Volo.Abp.SettingManagement.Blazor.WebAssembly\Volo.Abp.SettingManagement.Blazor.WebAssembly.csproj", "{9C65F145-6A74-48E4-8950-9E4F83953FDB}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.SettingManagement.Installer", "src\Volo.Abp.SettingManagement.Installer\Volo.Abp.SettingManagement.Installer.csproj", "{6D4AE734-45DF-4A6F-9E8B-2479760F1611}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -117,6 +119,10 @@ Global {9C65F145-6A74-48E4-8950-9E4F83953FDB}.Debug|Any CPU.Build.0 = Debug|Any CPU {9C65F145-6A74-48E4-8950-9E4F83953FDB}.Release|Any CPU.ActiveCfg = Release|Any CPU {9C65F145-6A74-48E4-8950-9E4F83953FDB}.Release|Any CPU.Build.0 = Release|Any CPU + {6D4AE734-45DF-4A6F-9E8B-2479760F1611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6D4AE734-45DF-4A6F-9E8B-2479760F1611}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6D4AE734-45DF-4A6F-9E8B-2479760F1611}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6D4AE734-45DF-4A6F-9E8B-2479760F1611}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -139,6 +145,7 @@ Global {8488F380-83DD-4209-80B7-87ACAB83A052} = {D3222BEC-EDCE-4509-9A19-36C43C9A59FB} {54825027-5569-456A-81D3-0F425FEE4712} = {F1BE945B-F0CF-4712-BC2B-9AF8C02059EA} {9C65F145-6A74-48E4-8950-9E4F83953FDB} = {F1BE945B-F0CF-4712-BC2B-9AF8C02059EA} + {6D4AE734-45DF-4A6F-9E8B-2479760F1611} = {F1BE945B-F0CF-4712-BC2B-9AF8C02059EA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {24B3A486-E7CA-4AA5-B76F-27D351A97E59} diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json index f0f1b6439a..b8fea48794 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/package.json @@ -3,6 +3,6 @@ "name": "demo-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock index 62f479c1ca..a7752bd98f 100644 --- a/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock +++ b/modules/setting-management/app/Volo.Abp.SettingManagement.DemoApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs index db612e9b4f..c8f241b856 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts/Volo/Abp/SettingManagement/SettingManagementRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class SettingManagementRemoteServiceConsts { public const string RemoteServiceName = "SettingManagement"; + + public const string ModuleName = "settingManagement"; } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs index 5e01f5b984..b3c9a49949 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi/Volo/Abp/SettingManagement/EmailSettingsController.cs @@ -5,7 +5,7 @@ using Volo.Abp.AspNetCore.Mvc; namespace Volo.Abp.SettingManagement { [RemoteService(Name = SettingManagementRemoteServiceConsts.RemoteServiceName)] - [Area("settingManagement")] + [Area(SettingManagementRemoteServiceConsts.ModuleName)] [Route("api/setting-management/emailing")] public class EmailSettingsController : AbpControllerBase, IEmailSettingsAppService { diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/FodyWeavers.xml b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/FodyWeavers.xsd b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo.Abp.SettingManagement.Installer.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo.Abp.SettingManagement.Installer.csproj new file mode 100644 index 0000000000..dd3daf7500 --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo.Abp.SettingManagement.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs new file mode 100644 index 0000000000..3fdfb0601d --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/AbpSettingManagementInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.SettingManagement +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpSettingManagementInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..e7fa67631e --- /dev/null +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Installer/Volo/Abp/SettingManagement/SettingManagementInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.SettingManagement +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class SettingManagementInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.SettingManagement.EntityFrameworkCore", + "ConfigureSettingManagement" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs index e1f13359a1..0955407103 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/AbpSettingManagementWebModule.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Volo.Abp.AspNetCore.Mvc.UI.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Modularity; using Volo.Abp.SettingManagement.Web.Navigation; using Volo.Abp.SettingManagement.Web.Pages.SettingManagement; @@ -52,6 +53,11 @@ namespace Volo.Abp.SettingManagement.Web configuration.AddFiles("/Pages/SettingManagement/Components/EmailSettingGroup/Default.js"); }); }); + + Configure(options => + { + options.DisableModule(SettingManagementRemoteServiceConsts.ModuleName); + }); } } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs index 1936b2a7e3..c38a804d1a 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/Components/EmailSettingGroup/EmailSettingGroupViewComponent.cs @@ -6,17 +6,17 @@ namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement.Components.Emai { public class EmailSettingGroupViewComponent : AbpViewComponent { - private readonly IEmailSettingsAppService _emailSettingsAppService; + protected IEmailSettingsAppService EmailSettingsAppService { get; } public EmailSettingGroupViewComponent(IEmailSettingsAppService emailSettingsAppService) { ObjectMapperContext = typeof(AbpSettingManagementWebModule); - _emailSettingsAppService = emailSettingsAppService; + EmailSettingsAppService = emailSettingsAppService; } - public async Task InvokeAsync() + public virtual async Task InvokeAsync() { - var model = await _emailSettingsAppService.GetAsync(); + var model = await EmailSettingsAppService.GetAsync(); return View("~/Pages/SettingManagement/Components/EmailSettingGroup/Default.cshtml", model); } diff --git a/modules/tenant-management/Volo.Abp.TenantManagement.abpmdl.json b/modules/tenant-management/Volo.Abp.TenantManagement.abpmdl.json new file mode 100644 index 0000000000..f9094439d8 --- /dev/null +++ b/modules/tenant-management/Volo.Abp.TenantManagement.abpmdl.json @@ -0,0 +1,78 @@ +{ + "folders": { + "items": { + "src": {}, + "test": {} + } + }, + "packages": { + "Volo.Abp.TenantManagement.Domain.Shared": { + "path": "src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Domain": { + "path": "src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Application.Contracts": { + "path": "src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Application": { + "path": "src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.EntityFrameworkCore": { + "path": "src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.HttpApi": { + "path": "src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.HttpApi.Client": { + "path": "src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Web": { + "path": "src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Application.Tests": { + "path": "test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.abppkg.json", + "folder": "test" + }, + "Volo.Abp.TenantManagement.EntityFrameworkCore.Tests": { + "path": "test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.abppkg.json", + "folder": "test" + }, + "Volo.Abp.TenantManagement.MongoDB": { + "path": "src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.MongoDB.Tests": { + "path": "test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.abppkg.json", + "folder": "test" + }, + "Volo.Abp.TenantManagement.TestBase": { + "path": "test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.abppkg.json", + "folder": "test" + }, + "Volo.Abp.TenantManagement.Domain.Tests": { + "path": "test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.abppkg.json", + "folder": "test" + }, + "Volo.Abp.TenantManagement.Blazor": { + "path": "src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Blazor.WebAssembly": { + "path": "src/Volo.Abp.TenantManagement.Blazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.WebAssembly.abppkg.json", + "folder": "src" + }, + "Volo.Abp.TenantManagement.Blazor.Server": { + "path": "src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.json", + "folder": "src" + } + } +} \ No newline at end of file diff --git a/modules/tenant-management/Volo.Abp.TenantManagement.abpsln.json b/modules/tenant-management/Volo.Abp.TenantManagement.abpsln.json new file mode 100644 index 0000000000..d6d4cb2f63 --- /dev/null +++ b/modules/tenant-management/Volo.Abp.TenantManagement.abpsln.json @@ -0,0 +1,7 @@ +{ + "modules": { + "Volo.Abp.TenantManagement": { + "path": "Volo.Abp.TenantManagement.abpmdl.json" + } + } +} \ No newline at end of file diff --git a/modules/tenant-management/Volo.Abp.TenantManagement.sln b/modules/tenant-management/Volo.Abp.TenantManagement.sln index 2fec240db6..27fc44c10c 100644 --- a/modules/tenant-management/Volo.Abp.TenantManagement.sln +++ b/modules/tenant-management/Volo.Abp.TenantManagement.sln @@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.B EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.Blazor.Server", "src\Volo.Abp.TenantManagement.Blazor.Server\Volo.Abp.TenantManagement.Blazor.Server.csproj", "{F92A9527-A2E2-4062-9A4B-0111C89AE222}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.TenantManagement.Installer", "src\Volo.Abp.TenantManagement.Installer\Volo.Abp.TenantManagement.Installer.csproj", "{56205DE5-77CB-4593-82E3-2DBC17310DDC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -115,6 +117,10 @@ Global {F92A9527-A2E2-4062-9A4B-0111C89AE222}.Debug|Any CPU.Build.0 = Debug|Any CPU {F92A9527-A2E2-4062-9A4B-0111C89AE222}.Release|Any CPU.ActiveCfg = Release|Any CPU {F92A9527-A2E2-4062-9A4B-0111C89AE222}.Release|Any CPU.Build.0 = Release|Any CPU + {56205DE5-77CB-4593-82E3-2DBC17310DDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {56205DE5-77CB-4593-82E3-2DBC17310DDC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {56205DE5-77CB-4593-82E3-2DBC17310DDC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {56205DE5-77CB-4593-82E3-2DBC17310DDC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -137,6 +143,7 @@ Global {02D10CCE-03B6-42BC-8C7B-7F1EC74FCB8C} = {799CA525-4748-421A-9892-05C68BB2FA13} {62C6DC70-A7DB-4623-A7BD-DB6D679660CA} = {799CA525-4748-421A-9892-05C68BB2FA13} {F92A9527-A2E2-4062-9A4B-0111C89AE222} = {799CA525-4748-421A-9892-05C68BB2FA13} + {56205DE5-77CB-4593-82E3-2DBC17310DDC} = {799CA525-4748-421A-9892-05C68BB2FA13} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7C258726-2CE0-44D3-A2D7-71812E8F505C} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.json new file mode 100644 index 0000000000..49032794e2 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementRemoteServiceConsts.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementRemoteServiceConsts.cs index c820c1bd49..d14b96b737 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementRemoteServiceConsts.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantManagementRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class TenantManagementRemoteServiceConsts { public const string RemoteServiceName = "AbpTenantManagement"; + + public const string ModuleName = "multi-tenancy"; } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.json new file mode 100644 index 0000000000..412567ac33 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.json new file mode 100644 index 0000000000..ef40d81585 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.Server/Volo.Abp.TenantManagement.Blazor.Server.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor-server" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.WebAssembly.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.WebAssembly.abppkg.json new file mode 100644 index 0000000000..471ef5e067 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor.WebAssembly/Volo.Abp.TenantManagement.Blazor.WebAssembly.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor-wasm" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.json new file mode 100644 index 0000000000..19c29b7b8b --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.json new file mode 100644 index 0000000000..8b3de05f76 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.domain-shared" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.json new file mode 100644 index 0000000000..1d574efe45 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.domain" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.json new file mode 100644 index 0000000000..e1c64f0175 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.ef" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.json new file mode 100644 index 0000000000..7deef5e383 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.json new file mode 100644 index 0000000000..515bfe64c4 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo/Abp/TenantManagement/TenantController.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo/Abp/TenantManagement/TenantController.cs index 9c5062f96e..e468a9da1a 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo/Abp/TenantManagement/TenantController.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo/Abp/TenantManagement/TenantController.cs @@ -8,7 +8,7 @@ namespace Volo.Abp.TenantManagement { [Controller] [RemoteService(Name = TenantManagementRemoteServiceConsts.RemoteServiceName)] - [Area("multi-tenancy")] + [Area(TenantManagementRemoteServiceConsts.ModuleName)] [Route("api/multi-tenancy/tenants")] public class TenantController : AbpControllerBase, ITenantAppService //TODO: Throws exception on validation if we inherit from Controller { @@ -74,4 +74,4 @@ namespace Volo.Abp.TenantManagement return TenantAppService.DeleteDefaultConnectionStringAsync(id); } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/FodyWeavers.xml b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/FodyWeavers.xsd b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo.Abp.TenantManagement.Installer.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo.Abp.TenantManagement.Installer.csproj new file mode 100644 index 0000000000..13fa3e195f --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo.Abp.TenantManagement.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo/Abp/TenantManagement/AbpTenantManagementInstallerModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo/Abp/TenantManagement/AbpTenantManagementInstallerModule.cs new file mode 100644 index 0000000000..7a0f5f66f2 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo/Abp/TenantManagement/AbpTenantManagementInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.TenantManagement +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpTenantManagementInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo/Abp/TenantManagement/TenantManagementInstallerPipelineBuilder.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo/Abp/TenantManagement/TenantManagementInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..02a3449a7b --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Installer/Volo/Abp/TenantManagement/TenantManagementInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.TenantManagement +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class AuditLoggingInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.TenantManagement.EntityFrameworkCore", + "ConfigureTenantManagement" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.json new file mode 100644 index 0000000000..8b23fd1e69 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mongodb" +} \ No newline at end of file diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs index 4ce5aa94d6..8d7d566041 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/AbpTenantManagementWebModule.cs @@ -5,6 +5,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars; using Volo.Abp.AutoMapper; using Volo.Abp.FeatureManagement; +using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; @@ -62,7 +63,7 @@ namespace Volo.Abp.TenantManagement.Web options.Conventions.AuthorizePage("/TenantManagement/Tenants/CreateModal", TenantManagementPermissions.Tenants.Create); options.Conventions.AuthorizePage("/TenantManagement/Tenants/EditModal", TenantManagementPermissions.Tenants.Update); }); - + Configure(options => { options.Configure( @@ -74,7 +75,7 @@ namespace Volo.Abp.TenantManagement.Web name: "ManageHostFeatures", requiredPolicyName: FeatureManagementPermissions.ManageHostFeatures ); - + toolbar.AddButton( LocalizableString.Create("NewTenant"), icon: "plus", @@ -84,6 +85,11 @@ namespace Volo.Abp.TenantManagement.Web } ); }); + + Configure(options => + { + options.DisableModule(TenantManagementRemoteServiceConsts.ModuleName); + }); } public override void PostConfigureServices(ServiceConfigurationContext context) @@ -100,4 +106,4 @@ namespace Volo.Abp.TenantManagement.Web }); } } -} \ No newline at end of file +} diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js index 9f61ffdcfc..e990b8fc37 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js @@ -57,6 +57,7 @@ .delete(data.record.id) .then(function () { _dataTable.ajax.reload(); + abp.notify.success(l('SuccessfullyDeleted')); }); }, } diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.abppkg.json b/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.abppkg.json b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.abppkg.json b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.abppkg.json b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.abppkg.json b/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/users/Volo.Abp.Users.sln b/modules/users/Volo.Abp.Users.sln index 6fb2387f16..d09f18a406 100644 --- a/modules/users/Volo.Abp.Users.sln +++ b/modules/users/Volo.Abp.Users.sln @@ -15,6 +15,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Users.Abstractions EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Users.MongoDB", "src\Volo.Abp.Users.MongoDB\Volo.Abp.Users.MongoDB.csproj", "{70E89492-7D4E-418A-835F-35E70282E808}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Users.Installer", "src\Volo.Abp.Users.Installer\Volo.Abp.Users.Installer.csproj", "{561CE9B2-B9B7-43F0-9BBF-8918A8D749D7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -41,6 +43,10 @@ Global {70E89492-7D4E-418A-835F-35E70282E808}.Debug|Any CPU.Build.0 = Debug|Any CPU {70E89492-7D4E-418A-835F-35E70282E808}.Release|Any CPU.ActiveCfg = Release|Any CPU {70E89492-7D4E-418A-835F-35E70282E808}.Release|Any CPU.Build.0 = Release|Any CPU + {561CE9B2-B9B7-43F0-9BBF-8918A8D749D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {561CE9B2-B9B7-43F0-9BBF-8918A8D749D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {561CE9B2-B9B7-43F0-9BBF-8918A8D749D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {561CE9B2-B9B7-43F0-9BBF-8918A8D749D7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -51,6 +57,7 @@ Global {C18FFD6A-0BE2-4FB8-B953-895F7B9CB374} = {6DE713B1-3AD7-4388-8B07-CCBE7158EC6E} {3905D0E9-448D-43DE-8884-C60D0612AA04} = {6DE713B1-3AD7-4388-8B07-CCBE7158EC6E} {70E89492-7D4E-418A-835F-35E70282E808} = {6DE713B1-3AD7-4388-8B07-CCBE7158EC6E} + {561CE9B2-B9B7-43F0-9BBF-8918A8D749D7} = {6DE713B1-3AD7-4388-8B07-CCBE7158EC6E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {E18777C8-72AB-4C08-BA72-885650BE70A9} diff --git a/modules/users/src/Volo.Abp.Users.Installer/FodyWeavers.xml b/modules/users/src/Volo.Abp.Users.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/users/src/Volo.Abp.Users.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/users/src/Volo.Abp.Users.Installer/FodyWeavers.xsd b/modules/users/src/Volo.Abp.Users.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/users/src/Volo.Abp.Users.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/users/src/Volo.Abp.Users.Installer/Volo.Abp.Users.Installer.csproj b/modules/users/src/Volo.Abp.Users.Installer/Volo.Abp.Users.Installer.csproj new file mode 100644 index 0000000000..e39f1e5b6e --- /dev/null +++ b/modules/users/src/Volo.Abp.Users.Installer/Volo.Abp.Users.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/users/src/Volo.Abp.Users.Installer/Volo/Abp/Users/AbpUsersInstallerModule.cs b/modules/users/src/Volo.Abp.Users.Installer/Volo/Abp/Users/AbpUsersInstallerModule.cs new file mode 100644 index 0000000000..bd9f0800a1 --- /dev/null +++ b/modules/users/src/Volo.Abp.Users.Installer/Volo/Abp/Users/AbpUsersInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.Users +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpUsersInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/users/src/Volo.Abp.Users.Installer/Volo/Abp/Users/UsersInstallerPipelineBuilder.cs b/modules/users/src/Volo.Abp.Users.Installer/Volo/Abp/Users/UsersInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..f5e71b8860 --- /dev/null +++ b/modules/users/src/Volo.Abp.Users.Installer/Volo/Abp/Users/UsersInstallerPipelineBuilder.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.Users +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class UsersInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + context.AddEfCoreConfigurationMethodDeclaration( + new EfCoreConfigurationMethodDeclaration( + "Volo.Abp.Users.EntityFrameworkCore", + "ConfigureAbpUser" + ) + ); + + return GetBasePipeline(context); + } + } +} diff --git a/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.abpmdl.json b/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.abpmdl.json new file mode 100644 index 0000000000..dbb8cc5c4e --- /dev/null +++ b/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.abpmdl.json @@ -0,0 +1,18 @@ +{ + "folders": { + "items": { + "src": {}, + "app": {} + } + }, + "packages": { + "Volo.Abp.VirtualFileExplorer.Web": { + "path": "src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.json", + "folder": "src" + }, + "Volo.Abp.VirtualFileExplorer.DemoApp": { + "path": "app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.abppkg.json", + "folder": "app" + } + } +} \ No newline at end of file diff --git a/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.abpsln.json b/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.abpsln.json new file mode 100644 index 0000000000..c163e92950 --- /dev/null +++ b/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.abpsln.json @@ -0,0 +1,7 @@ +{ + "modules": { + "Volo.Abp.VirtualFileExplorer": { + "path": "Volo.Abp.VirtualFileExplorer.abpmdl.json" + } + } +} \ No newline at end of file diff --git a/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.sln b/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.sln index 240117b5b7..67b9741932 100644 --- a/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.sln +++ b/modules/virtual-file-explorer/Volo.Abp.VirtualFileExplorer.sln @@ -11,6 +11,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{0489DA85-A27 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.VirtualFileExplorer.DemoApp", "app\Volo.Abp.VirtualFileExplorer.DemoApp\Volo.Abp.VirtualFileExplorer.DemoApp.csproj", "{6DAA2A8D-5422-4C3B-BA70-B54D949B1678}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.VirtualFileExplorer.Installer", "src\Volo.Abp.VirtualFileExplorer.Installer\Volo.Abp.VirtualFileExplorer.Installer.csproj", "{638DDC11-0B86-4B5D-A518-4A8158665074}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -25,6 +27,10 @@ Global {6DAA2A8D-5422-4C3B-BA70-B54D949B1678}.Debug|Any CPU.Build.0 = Debug|Any CPU {6DAA2A8D-5422-4C3B-BA70-B54D949B1678}.Release|Any CPU.ActiveCfg = Release|Any CPU {6DAA2A8D-5422-4C3B-BA70-B54D949B1678}.Release|Any CPU.Build.0 = Release|Any CPU + {638DDC11-0B86-4B5D-A518-4A8158665074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {638DDC11-0B86-4B5D-A518-4A8158665074}.Debug|Any CPU.Build.0 = Debug|Any CPU + {638DDC11-0B86-4B5D-A518-4A8158665074}.Release|Any CPU.ActiveCfg = Release|Any CPU + {638DDC11-0B86-4B5D-A518-4A8158665074}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -32,6 +38,7 @@ Global GlobalSection(NestedProjects) = preSolution {3B7B6317-1B85-4164-8E11-75574F80AE17} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} {6DAA2A8D-5422-4C3B-BA70-B54D949B1678} = {0489DA85-A27F-4D98-9DBD-950F5F2ECD11} + {638DDC11-0B86-4B5D-A518-4A8158665074} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.abppkg.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index 87ad005393..fefd37b3d6 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1", - "@abp/virtual-file-explorer": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/virtual-file-explorer": "^5.0.0-beta.2" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js index 1fee6e798d..d7b5d2d9c4 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/select2/js/select2-bootstrap-modal-patch.js @@ -1,4 +1,6 @@ /* https://select2.org/troubleshooting/common-problems */ -$.fn.modal.Constructor.prototype._enforceFocus = function () { }; \ No newline at end of file +if ($.fn.modal) { + $.fn.modal.Constructor.prototype._enforceFocus = function () { }; +} diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock index 61f7f3e3f2..45daa8fd37 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.1.tgz#2c78c2bd977a67f6c2ed77cfcd404cf9533eaaae" - integrity sha512-b8Boztxd5NbaDlXQvgHXHtw8ZNgM4tEgo14kw/bN3mcLx05fWLGd8Lzfdi7i+Ju6U3rKbgi+0MSbga93A0KSmg== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.1.tgz#25596652bb3f7b6bac5bbd966a731144cd9646c6" - integrity sha512-N4SHu6rn8alK4jdve00IscngrfvqJNEjrwQclXNmP9c4NtPuVM9emZdxBzKF8jFb6Hz8HiwM9H3xV/SjKCS/7A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.1" - "@abp/bootstrap" "~5.0.0-beta.1" - "@abp/bootstrap-datepicker" "~5.0.0-beta.1" - "@abp/datatables.net-bs4" "~5.0.0-beta.1" - "@abp/font-awesome" "~5.0.0-beta.1" - "@abp/jquery-form" "~5.0.0-beta.1" - "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.1" - "@abp/lodash" "~5.0.0-beta.1" - "@abp/luxon" "~5.0.0-beta.1" - "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.1" - "@abp/select2" "~5.0.0-beta.1" - "@abp/sweetalert2" "~5.0.0-beta.1" - "@abp/timeago" "~5.0.0-beta.1" - "@abp/toastr" "~5.0.0-beta.1" - -"@abp/aspnetcore.mvc.ui@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.1.tgz#30c14386899596bf91e8871810dbaa1a0e51e996" - integrity sha512-pabiGHghC62eg95RfAncEt0+yGdBxdMmyqCXV+Be4JjaMz/hGZIDOPIYnaqCayZtyMmIRqG6IAwi99DqBjkQAQ== +"@abp/aspnetcore.mvc.ui.theme.basic@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.0.0-beta.2.tgz#077d1edd88f2f1ccb5c8227180a75e3121eece19" + integrity sha512-b7f05Fza18NYHudrHosYuCX/UJ/Y3KYJrJMHqdvAsZYu0t3dc7EMWKYTDA/+rDEO8iV/83twRYfHLf0tmVyc1Q== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.0.0-beta.2.tgz#8c58d252f1a39f91c2c287b91691e5bd772f4918" + integrity sha512-l4suGM7PjGTw/MEg2f2BdbRXYzALhZQUSijzKIQTy5dwcA/JQPsLbezPzGy45fD3lXsYxBwS4QaOmofTosKkug== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.0.0-beta.2" + "@abp/bootstrap" "~5.0.0-beta.2" + "@abp/bootstrap-datepicker" "~5.0.0-beta.2" + "@abp/datatables.net-bs4" "~5.0.0-beta.2" + "@abp/font-awesome" "~5.0.0-beta.2" + "@abp/jquery-form" "~5.0.0-beta.2" + "@abp/jquery-validation-unobtrusive" "~5.0.0-beta.2" + "@abp/lodash" "~5.0.0-beta.2" + "@abp/luxon" "~5.0.0-beta.2" + "@abp/malihu-custom-scrollbar-plugin" "~5.0.0-beta.2" + "@abp/select2" "~5.0.0-beta.2" + "@abp/sweetalert2" "~5.0.0-beta.2" + "@abp/timeago" "~5.0.0-beta.2" + "@abp/toastr" "~5.0.0-beta.2" + +"@abp/aspnetcore.mvc.ui@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.0.0-beta.2.tgz#c30d9905e133451208e379f7173ed9c44dd5f487" + integrity sha512-8Dzfg5SzeVoXz/nY11o2u3y7ZQdUW/zVSYVTgbsCMC1HCe2yzptpr2XI0Goz8jQKgz0G+zg3iwfeur7vNoaoMw== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,172 +41,172 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.1.tgz#727e0f7305a94c95ece152ffff011bcff621f46d" - integrity sha512-txhdlJqyO2D9MkGLYgrsiDaC58cb2eCpk2uxoqqQeVWvuRPo/L+9rCBk+bu6J37FGJtU8aabtHJyR5xnYbv0TQ== +"@abp/bootstrap-datepicker@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.0.0-beta.2.tgz#dbf92485225a424f0e53e55c3ef8c993943682f0" + integrity sha512-jJWVKrkKcUMEqwBrEqhGD1zDFD8b0b3j0WdlzKuzlw26AaQkfE4LQ9Gjfjs+RnTW1LxPn8rGP8QCgdVeWMNjQQ== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.1.tgz#075a15459ff8e3896b6553786e6c8f091c6ffcad" - integrity sha512-W8z6qSAsRoXmG0++xH6Bk1oRc90hFqVcjKI+5XgBQhUUCn2qBruBYOKFxPg2GeT2f1k9K5TrCEnnVrh0sOP9/A== +"@abp/bootstrap@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-5.0.0-beta.2.tgz#0faaa85871fd23076dd597dce83dc3020b1ff950" + integrity sha512-zy0DUcAJuX+Oeu4csw7XbyLGq/YdfonMLJt/Mkpq8CjAssD7n7aJK6PwG+akaI4giSQd7Sc1JvvnKRMRzyxy1Q== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" bootstrap "^4.6.0" bootstrap-v4-rtl "4.6.0-1" -"@abp/clipboard@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.1.tgz#7c46ffe185116b1d3e43ef389df9dae2b98dd0c9" - integrity sha512-Gsr8qZNhxoH7uH+Kd0Q7qrQdGAjU20r65zjBI7iUgtpP/18obm87SUZLPDobZLAf+UB/Wl9VnxvedyLYDnuQGQ== +"@abp/clipboard@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-5.0.0-beta.2.tgz#a7c7cbb090a5fad8744d6de48b9aa0deeda60d0f" + integrity sha512-rhJkXD3/6z5lXmN39uhXavMSSue+/D9h2SXs3HaBMzgAIJUI/qHPrHOAOMUdXT/jKiO+EQtLzLH8V/5nJtvIZQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" clipboard "^2.0.6" -"@abp/core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.1.tgz#6cff06b13529ab9d7a6ddc4e89dc40616e6b7739" - integrity sha512-TK1CnurJIK/SXfsNTk6HSpxdaJgVxwvqNd4F3fxCC0Uj8s5viD3TAGk39Hkp4909WGfNrRq8BEUNvTYM/rP6gg== +"@abp/core@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-5.0.0-beta.2.tgz#f9643d21b19128be3ad58b23083e1fc9620f2102" + integrity sha512-AHlJQF5NC+yNsj5xILHk1CF++Z93aQDNp0zdJciDqIexH9lEJ+AQCX2EKLn0yjWt4Ga00pOOmQM5vJVJjuJCEw== dependencies: - "@abp/utils" "^5.0.0-beta.1" + "@abp/utils" "^5.0.0-beta.2" -"@abp/datatables.net-bs4@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.1.tgz#110d7d8cf1c15db7432d8f0649f4317ba8de10dd" - integrity sha512-CPodZP9pqLdwnFZ77/mcSfuhyK1WMi/c+9VWpGXFQSGaABNKPP2UIdAChwUcBRdGkZRa/IhXx3CCr1ZMLpJsMQ== +"@abp/datatables.net-bs4@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-5.0.0-beta.2.tgz#3afb32918f59b55c68d3d37b2c1f0bf49bb06fc8" + integrity sha512-t6YserKkBId7KnT46uYaGw6HJrf8tcLp4bJmGyUSnCwVlgJcha/P6fr3pKWqFz9QPGk5riCZF3hK6x1BH9u71g== dependencies: - "@abp/datatables.net" "~5.0.0-beta.1" + "@abp/datatables.net" "~5.0.0-beta.2" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.1.tgz#8e784a011d33de154554f3239c448fcfd8adb713" - integrity sha512-mRMYqTCoYLmDLvL+CvmwUS4JqCqdkn6mxHd7zgkaR04xlGLEmNae5aGbs1wURJ86MOWrHbfkx66lQjkul3zbQw== +"@abp/datatables.net@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-5.0.0-beta.2.tgz#fc87be76ebec94b16c6734c2249ea8a0a04a83b8" + integrity sha512-aEAlej1wNtxsxpwlw2GFOV0tFSZ7MWA+Wpfi5QZ4VIbYHSIkhEnz0apiNMBsoB8i7VJLJKZuKvynlJWYABNk0Q== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" datatables.net "^1.10.21" -"@abp/font-awesome@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.1.tgz#3ae721c447a009601226c381a20dc4adabe154e1" - integrity sha512-fsMqwApogZ1rAogStQxBX/Nh8akXPW/Alm8UayfK6TXIkPPjBz5RQSHfdlosG7M/U3mwUNGcLlaDvQXsE/nqow== +"@abp/font-awesome@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-5.0.0-beta.2.tgz#10a920fb20294f7ccd404ea2b302fb11f68f0705" + integrity sha512-Mmhfm7g5HdflvqbZOZDKk335IlY8ipwtKsCQ1qRaobsMpWi2AFh6/P/XX7y4H5p0wH5cluUsSzS1QB37QXp36w== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.1.tgz#d13f4cffce48125547b9da57cfc407f9a35a89e6" - integrity sha512-RYE90XIDxWkvxO5ukuZ2PHk6aA/o7NQKLcR9WsN1G2xTU/frrNPgtruGRTIj7Nx3BPUeMp7EAN2rYZwglcnO5g== +"@abp/jquery-form@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-5.0.0-beta.2.tgz#4b685858d54eafac123995ebfea759c769e49cab" + integrity sha512-ekytRAvAUNKJAPiR5i7kxASh5j3D5jabO1GHbPwq6UzapGLMzG5r8s6/1b4eX+4Zorfy+TmERNeUsWvQwf3P1A== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.1.tgz#93ff6ee92bccdde77816bfb434e967fd142f6b83" - integrity sha512-LZE1KIALGBCINdWrHzoGczekUFtKwbXbLIgb4ZgiipO5Xja7py/iVvts10QWqUzhnBk+kmbHbj+KnjdqP4Z8pQ== +"@abp/jquery-validation-unobtrusive@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.0.0-beta.2.tgz#392ab72716baea26e6f560e2369d09f8c5488d3b" + integrity sha512-PyiWj0hj5jkjcZ1oJeLXYuoVCIAg51X4y6iLbcb1SpAbqYQP23gilDJK8xkURbysGPMiDq+7tOiKAnGiHSBnWA== dependencies: - "@abp/jquery-validation" "~5.0.0-beta.1" + "@abp/jquery-validation" "~5.0.0-beta.2" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.1.tgz#2964ca1266b087e4c4c0e768bfc4bfe0284e4ff5" - integrity sha512-ZDNdkPy2ZNu0EYDNH20Oh9R3bICCYv9CbEj4zZ8Qavixo9VTkybY3BW0nYjcu1yb1P92gZPp80W8vyfxSo//kw== +"@abp/jquery-validation@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-5.0.0-beta.2.tgz#233eda5998ae566daeb945d8508999da2ef75a51" + integrity sha512-jKY0yfRgM5RGlJeQCGKkkczx5qptpPkhqWr4x+ffTUzR+ywF9FHUB5zcbELpEyWuOJ9cilap2hga2lvPZ8c+Pg== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" jquery-validation "^1.19.2" -"@abp/jquery@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.1.tgz#360e7a164b6b4ce615a5ad91a1c78ef6893648f3" - integrity sha512-v2t+76L45tlbpGeVR39GurZl60Rj1pR/TdUidpP6zwnpx1Y3I+CvlJNDwTESeE/ixTOT3PyFbXoMEi6hI+v39A== +"@abp/jquery@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-5.0.0-beta.2.tgz#62fa64fcc0bd5dca4b5e7534b24205a3f0461f08" + integrity sha512-tMzjo9qQAgJDYPvLk67YNlnOOUSTUfPWodlqfl5vvo6/NHSsB9eJhXH28txEtygX0o/Mepi9Ag87dL9VLh0DEw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" jquery "~3.6.0" -"@abp/lodash@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.1.tgz#618797bde42b17f91d7f99fdd5f24cb5e8a361b3" - integrity sha512-WsUjzHRZ6RkSMd5PTw0oWijDbbq/Wgonv8++ufUZi1WK5spZi9ohjcYM4io3Ms3fG+g4pWznaicYraMpV5tcsQ== +"@abp/lodash@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-5.0.0-beta.2.tgz#c821eb502de3211f94ca2f7ba8a5c0b0677c5c9b" + integrity sha512-lW8lz1JG8kweVOWVCB7jC6xxLUE0G6MJfwv4g0+eKwFLgsAO5dK6Yk4xZi+UXgST73OgGt5LIQJcS4+aCo/zmg== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" lodash "^4.17.15" -"@abp/luxon@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.1.tgz#fc81fcbfb592d3baf7b9856b3cecf5b86df4bfdf" - integrity sha512-t4lhJ/wr1rAVH1/bnzmc8niZYvolTuXUB0h6A6UYaw205QyNtimzusYkTwkc+Z3xHFUrkLCoG7J2SVoCJuioaA== +"@abp/luxon@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-5.0.0-beta.2.tgz#64c68c3091415153c8c470fb3e5650bbc00500d1" + integrity sha512-0mSVsycWEo5hamEuR7Mqw00JnVRlhQvpy8Bks58d7bRksIQzK8iPx9advTbP2ICF3iz9zHT9MJrMXYfvUT6oIQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.1.tgz#7af43d30af9b1f741fd9d9559d100aa4a5c52ae9" - integrity sha512-B195PC4/75W0EXjGEQUd/ZARb/eGWj8DX7hq3K+J+lUWzWu46dZy8s5bBij78HqxS91/q6nbxU35Z+E9xl6ICg== +"@abp/malihu-custom-scrollbar-plugin@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.0.0-beta.2.tgz#6c030cfe1e123be0a81f769dedd6a6b22aed9077" + integrity sha512-ZEkCMMDKe26b/sCArQjDOGEm8+lQB9Uis17FNyHDt/vA+FdtaPJjeLOqmfzMeLQYppvefH+JCpGzfaWwCNZmcw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.1.tgz#a41883c46e2ce67b2b9dcbe1ce85de9b183cfd29" - integrity sha512-Ps3X6gckZYUnWcmBPnXCa1LIh8HnQYxDD0WPppbEsp1VFN49T3yNO4G5jFVRxomFi5km8AluJW2zYk3Kh/4OSw== +"@abp/prismjs@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-5.0.0-beta.2.tgz#d00876d3d0768305a3c7d3c178488352ce88df5d" + integrity sha512-PFSrnoPrl+4w9XyCwe4F3N+Qg/ekXWeUkX0Zwh+0oR8pxQlbJC6aiCRDhCsmui+dEU/0vYpkKHXq46iDHQnjxQ== dependencies: - "@abp/clipboard" "~5.0.0-beta.1" - "@abp/core" "~5.0.0-beta.1" + "@abp/clipboard" "~5.0.0-beta.2" + "@abp/core" "~5.0.0-beta.2" prismjs "^1.20.0" -"@abp/select2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.1.tgz#15988165fcfed2ebc2b8d097965e2dc1984af35e" - integrity sha512-SF+NkWDJNz1EeEimW5luaCMPTNN1oPzEWs47usPJo8m7HfijEvF3rymJ8jL5zWIOo05Tx3HUurLSVz0qu4vZsw== +"@abp/select2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-5.0.0-beta.2.tgz#f5e74d56ccdabde61825453044f31fa183573b58" + integrity sha512-ApL7ioC4p5GguQM2KfnqtGrJ9TqBRiQh1v+y1J2Z3Lh18SJU+tsA3f9Va9ZyZNIFrpV3Bsmim2cIu7bjm7IBRw== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" select2 "^4.0.13" -"@abp/sweetalert2@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.1.tgz#c6a1185f39d3207f67753e7c486eddcefc7fd0da" - integrity sha512-ADotpiMkIzHLy/ufK0q49V9hgF8oKE0rLRzVZV2dHBpmFR7YRcPdbb5AN9CiXDk6ol8nsocEEAwRmgD3eJG63w== +"@abp/sweetalert2@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-5.0.0-beta.2.tgz#164c1df63c2859fa5277673906f85cc8e7e2d1ef" + integrity sha512-UdENhKcfywOorjTf4+CxDO8UUet9lYAIDH2r+Kd1qjFKIDDu6w3TfJ7Gz108VG84+RsUevfVLgZ8qeYsA+drKQ== dependencies: - "@abp/core" "~5.0.0-beta.1" + "@abp/core" "~5.0.0-beta.2" sweetalert2 "^11.0.18" -"@abp/timeago@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.1.tgz#0f7bb8cd85b7e90d7d5c0a0940b9102e3f4f1e42" - integrity sha512-QwYZyeDRW+X8BGecBcK1SgsClVWNYfPgvct+WkQhTIRxzbP/c1c+1irj69sNdN3df2WLnmjfu3sBw2hzz5ykbg== +"@abp/timeago@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-5.0.0-beta.2.tgz#7a6242e6cc403addf172ebf18ffb3513d4b30f21" + integrity sha512-wdXaKd0dBJP0mawzHqE04YWUgpUYzq8vJHGH3QGf9RpB+XpMztt1KNHR6d32VylDAEoPEtB7GH4rVvlimKa48g== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" timeago "^1.6.7" -"@abp/toastr@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.1.tgz#d420fc5db6b15f6d623d3928bb6913996511937f" - integrity sha512-82LfDrZQagtv4QLb643VTra4pxleOq5xYwhpOK1Ifop2K5CRgElxKfWvY2EtxdGkpCO2arvkOzjRNbxnecHB2w== +"@abp/toastr@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-5.0.0-beta.2.tgz#924f5315d3ade6ee41869d8809b625116c5b02f1" + integrity sha512-iqmgO/8AwORzYKf/43+Fx/478la0w+g+mrDahzokPlZFv6WUvFL3QSD/fs1mjc2yUOxEuvgprEiEfWoZcrwtNA== dependencies: - "@abp/jquery" "~5.0.0-beta.1" + "@abp/jquery" "~5.0.0-beta.2" toastr "^2.1.4" -"@abp/utils@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" - integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== +"@abp/utils@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== dependencies: just-compare "^1.3.0" -"@abp/virtual-file-explorer@^5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-5.0.0-beta.1.tgz#da32da66a85063292c8571a3b252b1828a22d2b3" - integrity sha512-8ZEmlvbrqDoKDxJ/ngiJmWdaLMThNoSsC9L/G4gfQ69ekQx0I0feKX3/i7RfR4t1wwjOWJsMmFVejxgaf3yNEA== +"@abp/virtual-file-explorer@^5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/virtual-file-explorer/-/virtual-file-explorer-5.0.0-beta.2.tgz#150e9eb4d32bd548988497d07f2e6e6faa1856a8" + integrity sha512-Q6sAFdWgS52GgjH9wVap/dwvq369vxQR9vRjQeMeCCFaCq8T3kFWkKj/nh2IDwBKyz0pXZVmDSuLHKI35CVFeQ== dependencies: - "@abp/clipboard" "~5.0.0-beta.1" - "@abp/prismjs" "~5.0.0-beta.1" + "@abp/clipboard" "~5.0.0-beta.2" + "@abp/prismjs" "~5.0.0-beta.2" "@fortawesome/fontawesome-free@^5.13.0": version "5.15.1" diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/FodyWeavers.xml b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/FodyWeavers.xsd b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo.Abp.VirtualFileExplorer.Installer.csproj b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo.Abp.VirtualFileExplorer.Installer.csproj new file mode 100644 index 0000000000..6a82e34326 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo.Abp.VirtualFileExplorer.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo/Abp/VirtualFileExplorer/AbpVirtualFileExplorerInstallerModule.cs b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo/Abp/VirtualFileExplorer/AbpVirtualFileExplorerInstallerModule.cs new file mode 100644 index 0000000000..f2e0f800a5 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo/Abp/VirtualFileExplorer/AbpVirtualFileExplorerInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio; +using Volo.Abp.VirtualFileSystem; + +namespace Volo.Abp.VirtualFileExplorer +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class AbpVirtualFileExplorerInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo/Abp/VirtualFileExplorer/VirtualFileExplorerInstallerPipelineBuilder.cs b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo/Abp/VirtualFileExplorer/VirtualFileExplorerInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..fe75a305f7 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer/Volo/Abp/VirtualFileExplorer/VirtualFileExplorerInstallerPipelineBuilder.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace Volo.Abp.VirtualFileExplorer +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class VirtualFileExplorerInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + return GetBasePipeline(context); + } + } +} diff --git a/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.json b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web/Volo.Abp.VirtualFileExplorer.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/npm/lerna.json b/npm/lerna.json index d87fc55190..ec4a4cf4aa 100644 --- a/npm/lerna.json +++ b/npm/lerna.json @@ -1,6 +1,8 @@ { - "version": "5.0.0-beta.1", - "packages": ["packs/*"], + "version": "5.0.0-beta.2", + "packages": [ + "packs/*" + ], "npmClient": "yarn", "lerna": "3.18.4" } diff --git a/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts b/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts index 70af33346f..9e6d6f63d7 100644 --- a/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts +++ b/npm/ng-packs/apps/dev-app/src/environments/environment.prod.ts @@ -1,4 +1,4 @@ -import { Config } from '@abp/ng.core'; +import { Environment } from '@abp/ng.core'; const baseUrl = 'http://localhost:4200'; @@ -22,4 +22,4 @@ export const environment = { url: 'https://localhost:44305', }, }, -} as Config.Environment; +} as Environment; diff --git a/npm/ng-packs/lerna.version.json b/npm/ng-packs/lerna.version.json index 41c18f07e8..0cbdcce37a 100644 --- a/npm/ng-packs/lerna.version.json +++ b/npm/ng-packs/lerna.version.json @@ -1,5 +1,7 @@ { - "version": "5.0.0-beta.1-1", - "packages": ["packages/*"], + "version": "5.0.0-beta.2", + "packages": [ + "packages/*" + ], "npmClient": "yarn" } diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index c85d95d6b7..e8c5684549 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -37,18 +37,18 @@ }, "private": true, "devDependencies": { - "@abp/ng.account": "~5.0.0-beta.1", - "@abp/ng.account.core": "~5.0.0-beta.1", - "@abp/ng.core": "~5.0.0-beta.1", - "@abp/ng.feature-management": "~5.0.0-beta.1", - "@abp/ng.identity": "~5.0.0-beta.1", - "@abp/ng.permission-management": "~5.0.0-beta.1", - "@abp/ng.schematics": "~5.0.0-beta.1", - "@abp/ng.setting-management": "~5.0.0-beta.1", - "@abp/ng.tenant-management": "~5.0.0-beta.1", - "@abp/ng.theme.basic": "~5.0.0-beta.1", - "@abp/ng.theme.shared": "~5.0.0-beta.1", - "@abp/utils": "~5.0.0-beta.1", + "@abp/ng.account": "~5.0.0-beta.2", + "@abp/ng.account.core": "~5.0.0-beta.2", + "@abp/ng.core": "~5.0.0-beta.2", + "@abp/ng.feature-management": "~5.0.0-beta.2", + "@abp/ng.identity": "~5.0.0-beta.2", + "@abp/ng.permission-management": "~5.0.0-beta.2", + "@abp/ng.schematics": "~5.0.0-beta.2", + "@abp/ng.setting-management": "~5.0.0-beta.2", + "@abp/ng.tenant-management": "~5.0.0-beta.2", + "@abp/ng.theme.basic": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", + "@abp/utils": "~5.0.0-beta.2", "@angular-devkit/build-angular": "~12.2.0", "@angular-devkit/build-ng-packagr": "^0.1002.0", "@angular-devkit/schematics-cli": "~12.2.0", diff --git a/npm/ng-packs/packages/account-core/package.json b/npm/ng-packs/packages/account-core/package.json index b04243ed2e..c0ca1e5e75 100644 --- a/npm/ng-packs/packages/account-core/package.json +++ b/npm/ng-packs/packages/account-core/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.account.core", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": "~5.0.0-beta.1", - "@abp/ng.theme.shared": "~5.0.0-beta.1", + "@abp/ng.core": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "@angular/common": ">=12.0.0", "@angular/core": ">=12.0.0" }, diff --git a/npm/ng-packs/packages/account/package.json b/npm/ng-packs/packages/account/package.json index 41aead682c..6ef59001c6 100644 --- a/npm/ng-packs/packages/account/package.json +++ b/npm/ng-packs/packages/account/package.json @@ -1,15 +1,15 @@ { "name": "@abp/ng.account", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~5.0.0-beta.1-1", - "@abp/ng.identity": "~5.0.0-beta.1-1", - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.account.core": "~5.0.0-beta.2", + "@abp/ng.identity": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/components/package.json b/npm/ng-packs/packages/components/package.json index 85ed3e508e..0f82063aa4 100644 --- a/npm/ng-packs/packages/components/package.json +++ b/npm/ng-packs/packages/components/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.components", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "peerDependencies": { - "@abp/ng.core": ">=5.0.0-beta.1", - "@abp/ng.theme.shared": ">=5.0.0-beta.1", + "@abp/ng.core": ">=5.0.0-beta.1-1", + "@abp/ng.theme.shared": ">=5.0.0-beta.1-1", "@ng-bootstrap/ng-bootstrap": ">=6.0.0" }, "dependencies": { diff --git a/npm/ng-packs/packages/core/package.json b/npm/ng-packs/packages/core/package.json index 801fc51e76..9571c94e7b 100644 --- a/npm/ng-packs/packages/core/package.json +++ b/npm/ng-packs/packages/core/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.core", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/utils": "^5.0.0-beta.1", + "@abp/utils": "^5.0.0-beta.2", "angular-oauth2-oidc": "^12.1.0", "just-clone": "^3.2.1", "just-compare": "^1.4.0", diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index f14305fd99..8e16780bfd 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.feature-management", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index f7790985a1..43e62deec0 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.identity", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.permission-management": "~5.0.0-beta.1-1", - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.permission-management": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/permission-management/package.json b/npm/ng-packs/packages/permission-management/package.json index 006603ca5d..51316e7146 100644 --- a/npm/ng-packs/packages/permission-management/package.json +++ b/npm/ng-packs/packages/permission-management/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.permission-management", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/schematics/package.json b/npm/ng-packs/packages/schematics/package.json index c5970684a0..9ca76a332b 100644 --- a/npm/ng-packs/packages/schematics/package.json +++ b/npm/ng-packs/packages/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@abp/ng.schematics", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "description": "Schematics that works with ABP Backend", "keywords": [ "schematics" diff --git a/npm/ng-packs/packages/setting-management/package.json b/npm/ng-packs/packages/setting-management/package.json index a285a41b35..b80fa8d5b6 100644 --- a/npm/ng-packs/packages/setting-management/package.json +++ b/npm/ng-packs/packages/setting-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.setting-management", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.components": "~5.0.0-beta.1-1", - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.components": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/tenant-management/package.json b/npm/ng-packs/packages/tenant-management/package.json index 032ed5b981..594bc44970 100644 --- a/npm/ng-packs/packages/tenant-management/package.json +++ b/npm/ng-packs/packages/tenant-management/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.tenant-management", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.feature-management": "~5.0.0-beta.1-1", - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.feature-management": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-basic/package.json b/npm/ng-packs/packages/theme-basic/package.json index 2e3b98514c..4584abef81 100644 --- a/npm/ng-packs/packages/theme-basic/package.json +++ b/npm/ng-packs/packages/theme-basic/package.json @@ -1,14 +1,14 @@ { "name": "@abp/ng.theme.basic", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.account.core": "~5.0.0-beta.1-1", - "@abp/ng.theme.shared": "~5.0.0-beta.1-1", + "@abp/ng.account.core": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/npm/ng-packs/packages/theme-shared/package.json b/npm/ng-packs/packages/theme-shared/package.json index 68018298f0..3e79dbc3d1 100644 --- a/npm/ng-packs/packages/theme-shared/package.json +++ b/npm/ng-packs/packages/theme-shared/package.json @@ -1,13 +1,13 @@ { "name": "@abp/ng.theme.shared", - "version": "5.0.0-beta.1-1", + "version": "5.0.0-beta.2", "homepage": "https://abp.io", "repository": { "type": "git", "url": "https://github.com/abpframework/abp.git" }, "dependencies": { - "@abp/ng.core": "~5.0.0-beta.1-1", + "@abp/ng.core": "~5.0.0-beta.2", "@fortawesome/fontawesome-free": "^5.15.4", "@ng-bootstrap/ng-bootstrap": "^7.0.0", "@ngx-validate/core": "^0.0.13", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index b108106bef..86797dbd27 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,57 +2,36 @@ # yarn lockfile v1 -"@abp/ng.account.core@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-4.4.3.tgz#e67100fe158da15c8e63d231f3ec7ec3083b7541" - integrity sha512-qNdDQ7UnYXaIiDqCsbw9LRXEuw14eXLrcsVrx4MNQHn/mmHX0i8HybRBu/HoLLOI5Xtibf+kAWCDyILqShTGQA== +"@abp/ng.account.core@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-5.0.0-beta.1-1.tgz#1b283a884a178e86306bb3719fc9aa4f4e13f1a7" + integrity sha512-T5eyxg+UdFWe3+qS1mFwk0TWZUOD+E4ILbLtQJdmC4kE/aqSOJZeab4PQo45xvTqxJ+QO4GVIYrfg6krkIDnZQ== dependencies: tslib "^2.0.0" -"@abp/ng.account.core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.account.core/-/ng.account.core-5.0.0-beta.1.tgz#b06026cadd964e0be6585d99e1f3fb3fdf638f96" - integrity sha512-hstVq25ajS8fPlc7DOnCikaut6al7nOnlI6yQlWfTAPbm0Pj/e45i2YQE9j/7aIpzuWzn01c+hoTt5cPTukv2g== - dependencies: - tslib "^2.0.0" - -"@abp/ng.account@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-5.0.0-beta.1.tgz#76f39da149c646b408bce4c6f46f6c41e98bc5dc" - integrity sha512-7R2UQuwfNngkohw3pu8agXqX/FHTyF16OcPRENkD/opufwIABqRczoOL4vfSsXtxTpLuSJ8Oy/79KQrbuwpi9A== - dependencies: - "@abp/ng.account.core" "~4.4.3" - "@abp/ng.identity" "~4.4.3" - "@abp/ng.theme.shared" "~4.4.3" - tslib "^2.0.0" - -"@abp/ng.components@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-4.4.3.tgz#5a13476e68182e85e6a065dd760c12b5d767bcca" - integrity sha512-b0zRe7kMHeclz8ytdInPAtIFIpgqO1XMKaTPOZFOpPutaaKWbD0Ji8ig9xm9sS8BT102NOmA6lI/0vJtVxkbyg== +"@abp/ng.account@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-5.0.0-beta.1-1.tgz#0b1fe99e5f0df4892e12f1ea989c087dd3fafcc1" + integrity sha512-bwqqiUxVINtDX6cMqNx6Wh1Ie7VUJNGyAx3nHNjhvDwU+40w0DvngoQ/+2UUNrWvacFplj9wkuhKR4YNr26Dfw== dependencies: - ng-zorro-antd "^11.0.0" + "@abp/ng.account.core" "~5.0.0-beta.2" + "@abp/ng.identity" "~5.0.0-beta.2" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.core@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-4.4.3.tgz#235e1ffa092e7015893f55ca66834a54df0fdebb" - integrity sha512-MJILExkpinyGadxbCE2xdxUqn2UzuByH0O2Oxm85ZU7CpQs0HPrw3Lon/0ySadJrTZmeNpbj5OA6CVGkQzzmdw== +"@abp/ng.components@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.components/-/ng.components-5.0.0-beta.1-1.tgz#53cb99f14f47f1e274a5b729f7f2239ce5ea6251" + integrity sha512-567FfP108A2yFVDHfz34g1LJQsV7HGpm0z4403nlVUT1CWxv5o5zVVpcaOn2pau57Uf9tE0IRxXxZuWHNPzXVw== dependencies: - "@abp/utils" "^4.4.3" - "@angular/localize" "~10.0.10" - "@ngxs/store" "^3.7.0" - angular-oauth2-oidc "^10.0.0" - just-clone "^3.1.0" - just-compare "^1.3.0" - snq "^1.0.3" - ts-toolbelt "6.15.4" + chart.js "^3.5.1" + ng-zorro-antd "^12.0.1" tslib "^2.0.0" -"@abp/ng.core@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-5.0.0-beta.1.tgz#00ba3db7de28b9abc31ca4891318fe88a6fe8b8d" - integrity sha512-X3Hp4jYyoBXudQFGTsHtdMOPvKH7aeHjbvRE6lkXJ4KCxwaXWHr/Xc/0RdU9MQoJrM+Ta+cbUlqS5mUkLclOIw== +"@abp/ng.core@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-5.0.0-beta.1-1.tgz#3a679cfb562a4598fe8628b9335009cce8d821ad" + integrity sha512-F/N7M1rUPG9ROTOhruF9wMBy/hOTHOeSuJSqI1BN5m3lav8mDj0q6X+TlxszN5xQvIepgZXDYmCz6C+qmB9+Lg== dependencies: "@abp/utils" "^5.0.0-beta.1" angular-oauth2-oidc "^12.1.0" @@ -61,60 +40,35 @@ ts-toolbelt "6.15.4" tslib "^2.0.0" -"@abp/ng.feature-management@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-4.4.3.tgz#1047898ad1312283354ad5f764483db9a03a3958" - integrity sha512-onXC5iXxVLrwgAwj+z++uOP52im2px1ewVNC4w+oQoW7IOS0877xXbUANhs2wykyMLjTLVI5p9HaO4N2QPsYeA== +"@abp/ng.feature-management@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-5.0.0-beta.1-1.tgz#0b14ef984de2308297b053ea421c834d22bd352c" + integrity sha512-89XX1+PkA1LZROZIJGGIDGQWEbuqvusnDcDKkuzVrI3+mghkvoGQYPig7nxnhW5vGdAmvJ9fDztsUNN5JKUDDQ== dependencies: - "@abp/ng.theme.shared" "~4.4.3" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.feature-management@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-5.0.0-beta.1.tgz#f027156077564fbbb7dad15da9cbdaa3a48023ce" - integrity sha512-3SAaI7uG9Xn524OFaVD+w/C91WIevUQ0sbpdJ3llQKWqU/WYCR6paT1lrzdkk1dTCZG+F47SD5dj8OukP5fA+g== +"@abp/ng.identity@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-5.0.0-beta.1-1.tgz#dd06d766a950a354565b5821363200d8763d2a65" + integrity sha512-qHRc5SceIQ56V1F0VVGqPjVnr7YHLEYmfX5tgyd/qk97WWvszkBD7a1eyQREP4Q63IiwcBtqnbN3hRCAU78JIQ== dependencies: - "@abp/ng.theme.shared" "~4.4.3" + "@abp/ng.permission-management" "~5.0.0-beta.2" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.identity@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-4.4.3.tgz#0a5f6d25ad337476f24c9632037c476167e527c9" - integrity sha512-LaUYxFoFyRM2nBy7YVoPSF+huAPdK6Gthk86kEUOycbka2uw2fxWI9h/vonqs8Tny/tAqtJsEzeGguIjjsjLhg== +"@abp/ng.permission-management@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-5.0.0-beta.1-1.tgz#72f709fc99581724b9102e9308f69f52200dc596" + integrity sha512-TKoP0lPMpgGzhtQ4W1zfv3uof4oP4ZZNxoTa9W7t1TzfAhxo/ryPJuMf11NXrJvKnD3s0I9AZMudGhjQvxXm3Q== dependencies: - "@abp/ng.permission-management" "~4.4.3" - "@abp/ng.theme.shared" "~4.4.3" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.identity@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-5.0.0-beta.1.tgz#e5efe6012d6e5fb6858030420b759ed763308bb8" - integrity sha512-CNg6Fg9KysAXX4lF6sdhTYdgbTf6CNYF45xhEMM+wFth7GXU4FtScy3jHKVfyEzNJwP4nyDndTRcT4PveXdCAw== - dependencies: - "@abp/ng.permission-management" "~4.4.3" - "@abp/ng.theme.shared" "~4.4.3" - tslib "^2.0.0" - -"@abp/ng.permission-management@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-4.4.3.tgz#088900bcc24b8bf66909681d41f0fcf937be1e0f" - integrity sha512-ijwl1pldAftixHdJ3m4pGPHPZMeL26YULhuOd1KavlIhiaKOMJQ4alx/FYgCkCsKMgKkcb6gNXAspF+m92tJjg== - dependencies: - "@abp/ng.theme.shared" "~4.4.3" - tslib "^2.0.0" - -"@abp/ng.permission-management@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-5.0.0-beta.1.tgz#1ad5a5f5b1a8d2d37a6d8d24e1ab16d88a4a8a8b" - integrity sha512-GIejir8qrZ/jje9DApSWdnjxJZ2Q1M/2Q2lXNgZqAg4h1UZz1NZisR2+Qohvn2ImfcGEPTKSaPyZDv4Ic1WJxg== - dependencies: - "@abp/ng.theme.shared" "~4.4.3" - tslib "^2.0.0" - -"@abp/ng.schematics@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-5.0.0-beta.1.tgz#a9312f43181a5784f97da87907d9326f973a107d" - integrity sha512-3FBWEney/W7D5TLqEyP/hCJGIguvKewMP3zh9o956MFVU7q4iWrLWsC5d06BEtr3rDv/fznIazuFdQ+EYRZNXw== +"@abp/ng.schematics@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.schematics/-/ng.schematics-5.0.0-beta.1-1.tgz#e53298a5f6472065b07ae1268ed74ee879389d6b" + integrity sha512-B820JImPYoCRuAf6LgxcCTW0i841RZwD2Y9prhmeAbue8uKs89MnjWiQMf7VbKIWR9rm7WPoEKoLBSV1cVO9/A== dependencies: "@angular-devkit/core" "~11.0.2" "@angular-devkit/schematics" "~11.0.2" @@ -123,53 +77,39 @@ should-quote "^1.0.0" typescript "~3.9.2" -"@abp/ng.setting-management@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-5.0.0-beta.1.tgz#7741069e67fb1dd651b846bd3ccb84b8f0516fa3" - integrity sha512-c4cRsHu8KIAorbTkh/DlBxezv0N4THpWIYcKa9wDzwA6mJeBGmoD/4YtoklFWbWtN48p0psSNSEmRzUBYWE+bQ== - dependencies: - "@abp/ng.components" "~4.4.3" - "@abp/ng.theme.shared" "~4.4.3" - tslib "^2.0.0" - -"@abp/ng.tenant-management@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-5.0.0-beta.1.tgz#18d16e7322de6e30c66e5a1c0e4136a054b4ce8d" - integrity sha512-ac2HAJMf2wnfIEXJcscnLo9mDIeCtOMfTC9qtpxhChhjvwGJ+41gWWTgGXs1icRN9vi+bZExF3DYVdMxvN13Bg== +"@abp/ng.setting-management@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-5.0.0-beta.1-1.tgz#4ad8d3ce4b0eee54460f6babb6a6b8775a217b05" + integrity sha512-Qqu/vjeoGJ/8+uq1/dmIb/ZsZn7lah3afUkYrs/1auFACYSiR9F9JgYueXaQ9OxLjrBZuA7wjdMB2mxKGDaZAg== dependencies: - "@abp/ng.feature-management" "~4.4.3" - "@abp/ng.theme.shared" "~4.4.3" + "@abp/ng.components" "~5.0.0-beta.2" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.theme.basic@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-5.0.0-beta.1.tgz#a4b2a46b9fc0a68b37e7d8b8d5b6d521156939b7" - integrity sha512-7vyqFIBJGLeYF88cnobUXk3aHV0S7euJYB8RJy26G1qcZYLKinRkDvvC3h+ftdpr667H/SlY1q4S6LlBXeQdpQ== +"@abp/ng.tenant-management@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-5.0.0-beta.1-1.tgz#4b851d6d4971fce83d11cf0511d74d2578ccf742" + integrity sha512-t7e8oYGas4Y3L28UUFmWPGlHyri/HVHSdKNf27rq3XjY1bhDd2RCC3FqSJCCr/AoNm1NU7fIPUl8oLTCWIYvkg== dependencies: - "@abp/ng.account.core" "~4.4.3" - "@abp/ng.theme.shared" "~4.4.3" + "@abp/ng.feature-management" "~5.0.0-beta.2" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.theme.shared@~4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-4.4.3.tgz#b3e507b8540ffcb84c4b055e23f358bff8e86d87" - integrity sha512-A3d+9kICENobWm7M8RnrBUp3gtA0i4OjOLlDeJTYNp4mcBPQu4R40QHUvSSqteUjGfbu6P1w6n9EQn40jn4wMw== +"@abp/ng.theme.basic@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-5.0.0-beta.1-1.tgz#fdb92411c5c3df686472ea3ea6175294a7a1f437" + integrity sha512-CAoVAU3ZOBsXhIAiQYGhNeuPic1yGR1MBolIK4EUpR0Ag1jyUXEahCu3T78MYdRBcPlYOD0yrK1/llo4GWZn2w== dependencies: - "@abp/ng.core" "~4.4.3" - "@fortawesome/fontawesome-free" "^5.14.0" - "@ng-bootstrap/ng-bootstrap" "^7.0.0" - "@ngx-validate/core" "^0.0.13" - "@swimlane/ngx-datatable" "^17.1.0" - bootstrap "~4.6.0" - chart.js "^2.9.3" + "@abp/ng.account.core" "~5.0.0-beta.2" + "@abp/ng.theme.shared" "~5.0.0-beta.2" tslib "^2.0.0" -"@abp/ng.theme.shared@~5.0.0-beta.1": - version "5.0.0-beta.1" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-5.0.0-beta.1.tgz#9ccee523a43d1408dcc73d09e7ba7a1583ae644a" - integrity sha512-nkuSnxroGmjy1TrkLomOGQy/ZYTUvs42Z2IX0k4rkpYXYcPYq2L4ly7MxxPY1GZWzR8MiCvRBlpYNlAfncDgXw== +"@abp/ng.theme.shared@~5.0.0-beta.2": + version "5.0.0-beta.1-1" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-5.0.0-beta.1-1.tgz#fce2aa9433838f514263cfa3aff34ab803651320" + integrity sha512-AQFTm4T8ohR/7RmZTTJ7CvUscwKqf/HF2AvxZRy+ixe+q1PGWos6L+e8ZFt5YuzkieUPLXdWkeBni0x4rEQRdw== dependencies: - "@abp/ng.core" "~4.4.3" + "@abp/ng.core" "~5.0.0-beta.2" "@fortawesome/fontawesome-free" "^5.15.4" "@ng-bootstrap/ng-bootstrap" "^7.0.0" "@ngx-validate/core" "^0.0.13" @@ -177,20 +117,20 @@ bootstrap "~4.6.0" tslib "^2.0.0" -"@abp/utils@^4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-4.4.3.tgz#5d6939be5463adaa938357d74d1a35fed21b0115" - integrity sha512-B2E89fhM7vKDz9He6EeNc9P5RVYThiBLpTkKvJTeXG+DJtrP2ZbEICe1fcDA48wLFokXXKgx/SjoJlMvObhilQ== - dependencies: - just-compare "^1.3.0" - -"@abp/utils@^5.0.0-beta.1", "@abp/utils@~5.0.0-beta.1": +"@abp/utils@^5.0.0-beta.1": version "5.0.0-beta.1" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.1.tgz#e1bf9240738276081c89a67073d9d85205fdf14c" integrity sha512-suzKxHUautizxt5XdlJ8ONIaVMcAHrb2dp1kEnXnFRW1ip+7ZQ9/nxJj+GtY1MhHX2yPmlUQP2K8f2upJh9aoA== dependencies: just-compare "^1.3.0" +"@abp/utils@~5.0.0-beta.2": + version "5.0.0-beta.2" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-5.0.0-beta.2.tgz#4d120c0f930b943071b4ba27dafedf6c8b730182" + integrity sha512-EZV1P+eafVBEHO6B+Ws6iX4xyeg8B6nCPLvpaFC6mStk7SGidh2rAYYWyydyh68Ky8YdbLYQE3oPaIewOhDWTg== + dependencies: + just-compare "^1.3.0" + "@ampproject/remapping@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-1.0.1.tgz#1398e73e567c2a7992df6554c15bb94a89b68ba2" @@ -430,15 +370,6 @@ dependencies: tslib "^2.2.0" -"@angular/cdk@^11.0.2": - version "11.2.13" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-11.2.13.tgz#d54c9187e3b8cf3f8ba190b1edddc08ed2b740de" - integrity sha512-FkE4iCwoLbQxLDUOjV1I7M/6hmpyb7erAjEdWgch7nGRNxF1hqX5Bqf1lvLFKPNCbx5NRI5K7YVAdIUQUR8vug== - dependencies: - tslib "^2.0.0" - optionalDependencies: - parse5 "^5.0.0" - "@angular/cdk@^12.1.0": version "12.2.6" resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-12.2.6.tgz#12aca217e30d96625b38ab83c0ca445f074ba41b" @@ -526,15 +457,6 @@ resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-12.2.6.tgz#c6b90ac820323d01d3fa4e0ce93a5fb1dcafa0e3" integrity sha512-4oKiWgJFCFIVIdMUgyNl/SA++rYjLa+rj0fU+Coi9lwtSpBIOWdLd9KnwtaU/JbdZjx1SSogy9+T9ylT/y0CMw== -"@angular/localize@~10.0.10": - version "10.0.14" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-10.0.14.tgz#99064a3b12e94e54e791c0638fbbbcc8783d8a62" - integrity sha512-tV1oUii6bxpQ6bKELcZsibUEEGmNiROxy8xRW015VgrgMFhuNuesHSmNUIstZ7ag8/sjh0/w1p55PUB6LEiPFA== - dependencies: - "@babel/core" "7.8.3" - glob "7.1.2" - yargs "15.3.0" - "@angular/platform-browser-dynamic@~12.2.0": version "12.2.6" resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.2.6.tgz#534d7e16d41a938b868a322806975950867bd5ed" @@ -563,14 +485,6 @@ dependencies: "@ctrl/tinycolor" "^3.3.1" -"@ant-design/icons-angular@^11.0.1": - version "11.0.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons-angular/-/icons-angular-11.0.1.tgz#8ff3131f3d9b4b25fd28c64c4a9bdfe36da54942" - integrity sha512-WwxVx/aToxTjWmB5+O+3rOjSYdF8FC/Yd/8jF1ZGQMtLWAzP8/foQmKvPAktTUsh0/Ijhtur7LrHN2VuUedMcA== - dependencies: - "@ant-design/colors" "^5.0.0" - tslib "^2.0.0" - "@ant-design/icons-angular@^12.0.3": version "12.0.3" resolved "https://registry.yarnpkg.com/@ant-design/icons-angular/-/icons-angular-12.0.3.tgz#3e99aa99ceebb978384a2926d06da19c043fc4bd" @@ -624,27 +538,6 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" - integrity sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.3" - "@babel/helpers" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.0" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/core@^7.0.1", "@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.6": version "7.15.5" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.5.tgz#f8ed9ace730722544609f90c9bb49162dc3bf5b9" @@ -675,7 +568,7 @@ jsesc "^2.5.1" source-map "^0.5.0" -"@babel/generator@^7.14.8", "@babel/generator@^7.15.4", "@babel/generator@^7.7.2", "@babel/generator@^7.8.3": +"@babel/generator@^7.14.8", "@babel/generator@^7.15.4", "@babel/generator@^7.7.2": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== @@ -880,7 +773,7 @@ "@babel/traverse" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/helpers@^7.14.8", "@babel/helpers@^7.15.4", "@babel/helpers@^7.8.3": +"@babel/helpers@^7.14.8", "@babel/helpers@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== @@ -898,7 +791,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5", "@babel/parser@^7.7.2", "@babel/parser@^7.8.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.15.4", "@babel/parser@^7.15.5", "@babel/parser@^7.7.2": version "7.15.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.7.tgz#0c3ed4a2eb07b165dfa85b3cc45c727334c4edae" integrity sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g== @@ -1628,7 +1521,7 @@ "@babel/parser" "^7.14.5" "@babel/types" "^7.14.5" -"@babel/template@^7.14.5", "@babel/template@^7.15.4", "@babel/template@^7.3.3", "@babel/template@^7.8.3": +"@babel/template@^7.14.5", "@babel/template@^7.15.4", "@babel/template@^7.3.3": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== @@ -1637,7 +1530,7 @@ "@babel/parser" "^7.15.4" "@babel/types" "^7.15.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.8", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2", "@babel/traverse@^7.8.3": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.8", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.2": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== @@ -1652,7 +1545,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6": +"@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.4", "@babel/types@^7.15.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.8.6": version "7.15.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f" integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig== @@ -1740,7 +1633,7 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@fortawesome/fontawesome-free@^5.14.0", "@fortawesome/fontawesome-free@^5.15.4": +"@fortawesome/fontawesome-free@^5.15.4": version "5.15.4" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== @@ -2707,13 +2600,6 @@ dependencies: tslib "^1.9.0" -"@ngxs/store@^3.7.0": - version "3.7.2" - resolved "https://registry.yarnpkg.com/@ngxs/store/-/store-3.7.2.tgz#1088b0669adc382d36ca7ae8438c603e55879b42" - integrity sha512-1cnAjHOGCovfvhjtcAWBajrMXos97Un3c8ekKoS8FIHnq3aQOzY/ePspDRNi9kTcuBJ/r/xl097JC1ssEuNbyg== - dependencies: - tslib "^1.9.0" - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -3147,11 +3033,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@swimlane/ngx-datatable@^17.1.0": - version "17.1.0" - resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-17.1.0.tgz#ef2f91c3783526e7e89ac7a62a53e7bc9e1c90d5" - integrity sha512-zYUS7uNO9OJ5UQZFuuTRjlPu6vdKA+FHYLfeEs7PgSuUiDCcbl2SWoUdS/3zIoWn/qQyws767ueWiAvvWUbpEw== - "@swimlane/ngx-datatable@^19.0.0": version "19.0.0" resolved "https://registry.yarnpkg.com/@swimlane/ngx-datatable/-/ngx-datatable-19.0.0.tgz#7eed84ba276ebb9e4761233f8ac95d38fdff45b7" @@ -4028,13 +3909,6 @@ alphanum-sort@^1.0.2: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= -angular-oauth2-oidc@^10.0.0: - version "10.0.3" - resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz#612ef75c2e07b56592d2506f9618ee6a61857ad9" - integrity sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg== - dependencies: - tslib "^2.0.0" - angular-oauth2-oidc@^12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/angular-oauth2-oidc/-/angular-oauth2-oidc-12.1.0.tgz#d15b40e52c149187303d4511dd0e4d9661281fc6" @@ -5013,34 +4887,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -chart.js@^2.9.3: - version "2.9.4" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" - integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== - dependencies: - chartjs-color "^2.1.0" - moment "^2.10.2" - chart.js@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.5.1.tgz#73e24d23a4134a70ccdb5e79a917f156b6f3644a" integrity sha512-m5kzt72I1WQ9LILwQC4syla/LD/N413RYv2Dx2nnTkRS9iv/ey1xLTt0DnPc/eWV4zI+BgEgDYBIzbQhZHc/PQ== -chartjs-color-string@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" - integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== - dependencies: - color-name "^1.0.0" - -chartjs-color@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" - integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== - dependencies: - chartjs-color-string "^0.6.0" - color-convert "^1.9.3" - check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" @@ -5251,7 +5102,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.9.0, color-convert@^1.9.3: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -5270,7 +5121,7 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4: +color-name@^1.1.4, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -7366,7 +7217,7 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -7527,18 +7378,6 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" @@ -9316,7 +9155,7 @@ json3@^3.3.3: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@2.x, json5@^2.1.0, json5@^2.1.2: +json5@2.x, json5@^2.1.2: version "2.2.0" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -9374,7 +9213,7 @@ jszip@^3.1.3: readable-stream "~2.3.6" set-immediate-shim "~1.0.1" -just-clone@^3.1.0, just-clone@^3.2.1: +just-clone@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/just-clone/-/just-clone-3.2.1.tgz#7396be5790d33f0fa7e8a145d7983b986a8cee39" integrity sha512-PFotEVrrzAnwuWTUOFquDShWrHnUnhxNrVs1VFqkNfnoH3Sn5XUlDOePYn2Vv5cN8xV2y69jf8qEoQHm7eoLnw== @@ -9696,7 +9535,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@4.x, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: +lodash@4.x, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -10205,11 +10044,6 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -moment@^2.10.2: - version "2.29.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" - integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== - moo-color@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.2.tgz#837c40758d2d58763825d1359a84e330531eca64" @@ -10361,17 +10195,6 @@ ng-packagr@^12.2.0: sass "^1.32.8" stylus "^0.54.8" -ng-zorro-antd@^11.0.0: - version "11.4.2" - resolved "https://registry.yarnpkg.com/ng-zorro-antd/-/ng-zorro-antd-11.4.2.tgz#c19f12fee9166cbed0b6c7c63fa37da0464413e7" - integrity sha512-1dMIz5zBma+CfUYYKmIKWIB9mXX837L+WKGGHhl2KrmIIbsbNLh3WTKudCBuyqL58EEgiVhTZYwl841xdz+vLw== - dependencies: - "@angular/cdk" "^11.0.2" - "@ant-design/icons-angular" "^11.0.1" - date-fns "^2.10.0" - resize-observer-polyfill "^1.5.1" - tslib "^2.0.0" - ng-zorro-antd@^12.0.1: version "12.0.1" resolved "https://registry.yarnpkg.com/ng-zorro-antd/-/ng-zorro-antd-12.0.1.tgz#7f06e2f538f02aefc17ff307e9e19045997f066f" @@ -12543,11 +12366,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -12846,7 +12664,7 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -13097,11 +12915,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -snq@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/snq/-/snq-1.0.3.tgz#f9661d10eebb224c52fc3c50106445c268618168" - integrity sha512-bXcxd1ppFnSNYKq84HyOYuYtbMHCFTZvuPSNCn/80yx9+DLkU/hLqjqCRKRHSDISrL1T/lWGXJyQxWS8TnutFA== - sockjs-client@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.2.tgz#4bc48c2da9ce4769f19dc723396b50f5c12330a3" @@ -15033,7 +14846,7 @@ yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^18.1.0, yargs-parser@^18.1.2: +yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== @@ -15041,23 +14854,6 @@ yargs-parser@^18.1.0, yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.0.tgz#403af6edc75b3ae04bf66c94202228ba119f0976" - integrity sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.0" - yargs@15.4.1, yargs@^15.3.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" diff --git a/npm/package-update-script.js b/npm/package-update-script.js index 27930f096c..1625f77129 100644 --- a/npm/package-update-script.js +++ b/npm/package-update-script.js @@ -15,7 +15,7 @@ const check = (pkgJsonPath) => { return childProcess .execSync( `ncu "/^@(${packages}).*$/" --packageFile ${pkgJsonPath} -u${ - program.prerelase ? ' --target greatest' : '' + program.prerelase ? ' --target newest' : '' }${program.registry ? ` --registry ${program.registry}` : ''}` ) .toString(); diff --git a/npm/packs/anchor-js/package.json b/npm/packs/anchor-js/package.json index 8e701e83d0..2d5df96a60 100644 --- a/npm/packs/anchor-js/package.json +++ b/npm/packs/anchor-js/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/anchor-js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "anchor-js": "^4.2.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/aspnetcore.components.server.basictheme/package.json b/npm/packs/aspnetcore.components.server.basictheme/package.json index 869fc2406d..c3a56f8367 100644 --- a/npm/packs/aspnetcore.components.server.basictheme/package.json +++ b/npm/packs/aspnetcore.components.server.basictheme/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/aspnetcore.components.server.basictheme", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.components.server.theming": "~5.0.0-beta.1" + "@abp/aspnetcore.components.server.theming": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.components.server.theming/package.json b/npm/packs/aspnetcore.components.server.theming/package.json index 3dd87e42c7..768c0c4f8e 100644 --- a/npm/packs/aspnetcore.components.server.theming/package.json +++ b/npm/packs/aspnetcore.components.server.theming/package.json @@ -1,12 +1,12 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/aspnetcore.components.server.theming", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/bootstrap": "~5.0.0-beta.1", - "@abp/font-awesome": "~5.0.0-beta.1" + "@abp/bootstrap": "~5.0.0-beta.2", + "@abp/font-awesome": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json index 347176684c..bc4032b352 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.basic/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/aspnetcore.mvc.ui.theme.basic", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/aspnetcore.mvc.ui.theme.basic" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json index 5870dfb137..5646bc2ebf 100644 --- a/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json +++ b/npm/packs/aspnetcore.mvc.ui.theme.shared/package.json @@ -1,24 +1,29 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/aspnetcore.mvc.ui.theme.shared", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/aspnetcore.mvc.ui.theme.shared" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui": "~5.0.0-beta.1", - "@abp/bootstrap": "~5.0.0-beta.1", - "@abp/bootstrap-datepicker": "~5.0.0-beta.1", - "@abp/datatables.net-bs4": "~5.0.0-beta.1", - "@abp/font-awesome": "~5.0.0-beta.1", - "@abp/jquery-form": "~5.0.0-beta.1", - "@abp/jquery-validation-unobtrusive": "~5.0.0-beta.1", - "@abp/lodash": "~5.0.0-beta.1", - "@abp/luxon": "~5.0.0-beta.1", - "@abp/malihu-custom-scrollbar-plugin": "~5.0.0-beta.1", - "@abp/select2": "~5.0.0-beta.1", - "@abp/sweetalert2": "~5.0.0-beta.1", - "@abp/timeago": "~5.0.0-beta.1", - "@abp/toastr": "~5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui": "~5.0.0-beta.2", + "@abp/bootstrap": "~5.0.0-beta.2", + "@abp/bootstrap-datepicker": "~5.0.0-beta.2", + "@abp/datatables.net-bs4": "~5.0.0-beta.2", + "@abp/font-awesome": "~5.0.0-beta.2", + "@abp/jquery-form": "~5.0.0-beta.2", + "@abp/jquery-validation-unobtrusive": "~5.0.0-beta.2", + "@abp/lodash": "~5.0.0-beta.2", + "@abp/luxon": "~5.0.0-beta.2", + "@abp/malihu-custom-scrollbar-plugin": "~5.0.0-beta.2", + "@abp/select2": "~5.0.0-beta.2", + "@abp/sweetalert2": "~5.0.0-beta.2", + "@abp/timeago": "~5.0.0-beta.2", + "@abp/toastr": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/aspnetcore.mvc.ui/package-lock.json b/npm/packs/aspnetcore.mvc.ui/package-lock.json index 97962a503f..5720a3f35a 100644 --- a/npm/packs/aspnetcore.mvc.ui/package-lock.json +++ b/npm/packs/aspnetcore.mvc.ui/package-lock.json @@ -1,6 +1,6 @@ { "name": "@abp/aspnetcore.mvc.ui", - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/npm/packs/aspnetcore.mvc.ui/package.json b/npm/packs/aspnetcore.mvc.ui/package.json index 9bbd5aefaf..08269f7189 100644 --- a/npm/packs/aspnetcore.mvc.ui/package.json +++ b/npm/packs/aspnetcore.mvc.ui/package.json @@ -1,6 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/aspnetcore.mvc.ui", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/aspnetcore.mvc.ui" + }, "publishConfig": { "access": "public" }, diff --git a/npm/packs/blogging/package.json b/npm/packs/blogging/package.json index 0b2cb53ec9..76cfeeced1 100644 --- a/npm/packs/blogging/package.json +++ b/npm/packs/blogging/package.json @@ -1,14 +1,14 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/blogging", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "~5.0.0-beta.1", - "@abp/owl.carousel": "~5.0.0-beta.1", - "@abp/prismjs": "~5.0.0-beta.1", - "@abp/tui-editor": "~5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.shared": "~5.0.0-beta.2", + "@abp/owl.carousel": "~5.0.0-beta.2", + "@abp/prismjs": "~5.0.0-beta.2", + "@abp/tui-editor": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/bootstrap-datepicker/package.json b/npm/packs/bootstrap-datepicker/package.json index f6b9c52680..c65311e5a9 100644 --- a/npm/packs/bootstrap-datepicker/package.json +++ b/npm/packs/bootstrap-datepicker/package.json @@ -1,6 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/bootstrap-datepicker", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/bootstrap-datepicker" + }, "publishConfig": { "access": "public" }, diff --git a/npm/packs/bootstrap/package.json b/npm/packs/bootstrap/package.json index 52bf77e2d7..38e9300aaa 100644 --- a/npm/packs/bootstrap/package.json +++ b/npm/packs/bootstrap/package.json @@ -1,12 +1,18 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/bootstrap", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/bootstrap" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", - "bootstrap": "^5.1.0" + "@abp/core": "~5.0.0-beta.2", + "bootstrap": "^5.1.0", + "bootstrap-v4-rtl": "4.6.0-1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/chart.js/package.json b/npm/packs/chart.js/package.json index 78e07187de..28e99c6124 100644 --- a/npm/packs/chart.js/package.json +++ b/npm/packs/chart.js/package.json @@ -1,5 +1,5 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/chart.js", "publishConfig": { "access": "public" diff --git a/npm/packs/clipboard/package.json b/npm/packs/clipboard/package.json index 5557d46809..66f6792c99 100644 --- a/npm/packs/clipboard/package.json +++ b/npm/packs/clipboard/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/clipboard", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "clipboard": "^2.0.6" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/cms-kit.admin/package.json b/npm/packs/cms-kit.admin/package.json index dd5d836cc8..89c788784d 100644 --- a/npm/packs/cms-kit.admin/package.json +++ b/npm/packs/cms-kit.admin/package.json @@ -1,14 +1,14 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/cms-kit.admin", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jstree": "~5.0.0-beta.1", - "@abp/slugify": "~5.0.0-beta.1", - "@abp/tui-editor": "~5.0.0-beta.1", - "@abp/uppy": "~5.0.0-beta.1" + "@abp/jstree": "~5.0.0-beta.2", + "@abp/slugify": "~5.0.0-beta.2", + "@abp/tui-editor": "~5.0.0-beta.2", + "@abp/uppy": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cms-kit.public/package.json b/npm/packs/cms-kit.public/package.json index 2d2ad3a3ec..25e9abb958 100644 --- a/npm/packs/cms-kit.public/package.json +++ b/npm/packs/cms-kit.public/package.json @@ -1,12 +1,12 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/cms-kit.public", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/highlight.js": "~5.0.0-beta.1", - "@abp/star-rating-svg": "~5.0.0-beta.1" + "@abp/highlight.js": "~5.0.0-beta.2", + "@abp/star-rating-svg": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cms-kit/package.json b/npm/packs/cms-kit/package.json index af2e36551d..d2388a30ff 100644 --- a/npm/packs/cms-kit/package.json +++ b/npm/packs/cms-kit/package.json @@ -1,12 +1,12 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/cms-kit", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/cms-kit.admin": "~5.0.0-beta.1", - "@abp/cms-kit.public": "~5.0.0-beta.1" + "@abp/cms-kit.admin": "~5.0.0-beta.2", + "@abp/cms-kit.public": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/codemirror/package.json b/npm/packs/codemirror/package.json index a16c81517a..4ec395dcf2 100644 --- a/npm/packs/codemirror/package.json +++ b/npm/packs/codemirror/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/codemirror", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "codemirror": "^5.54.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/core/package.json b/npm/packs/core/package.json index 98619ae53f..67647f3f79 100644 --- a/npm/packs/core/package.json +++ b/npm/packs/core/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/core", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/core" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/utils": "^5.0.0-beta.1" + "@abp/utils": "^5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/cropperjs/package.json b/npm/packs/cropperjs/package.json index 675d1e2282..f7504ab03c 100644 --- a/npm/packs/cropperjs/package.json +++ b/npm/packs/cropperjs/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/cropperjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "cropperjs": "^1.5.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net-bs4/package.json b/npm/packs/datatables.net-bs4/package.json index b470739daf..1bebb5d4ce 100644 --- a/npm/packs/datatables.net-bs4/package.json +++ b/npm/packs/datatables.net-bs4/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/datatables.net-bs4", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/datatables.net-bs4" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/datatables.net": "~5.0.0-beta.1", + "@abp/datatables.net": "~5.0.0-beta.2", "datatables.net-bs4": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/datatables.net/package.json b/npm/packs/datatables.net/package.json index 41fc99c148..fa5e5f6c61 100644 --- a/npm/packs/datatables.net/package.json +++ b/npm/packs/datatables.net/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/datatables.net", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/datatables.net" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "datatables.net": "^1.10.21" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/docs/package.json b/npm/packs/docs/package.json index 115261f284..2852d0c87b 100644 --- a/npm/packs/docs/package.json +++ b/npm/packs/docs/package.json @@ -1,15 +1,15 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/docs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/anchor-js": "~5.0.0-beta.1", - "@abp/clipboard": "~5.0.0-beta.1", - "@abp/malihu-custom-scrollbar-plugin": "~5.0.0-beta.1", - "@abp/popper.js": "~5.0.0-beta.1", - "@abp/prismjs": "~5.0.0-beta.1" + "@abp/anchor-js": "~5.0.0-beta.2", + "@abp/clipboard": "~5.0.0-beta.2", + "@abp/malihu-custom-scrollbar-plugin": "~5.0.0-beta.2", + "@abp/popper.js": "~5.0.0-beta.2", + "@abp/prismjs": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/flag-icon-css/package.json b/npm/packs/flag-icon-css/package.json index 8049298aaa..f4b4a7ba4b 100644 --- a/npm/packs/flag-icon-css/package.json +++ b/npm/packs/flag-icon-css/package.json @@ -1,5 +1,5 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/flag-icon-css", "publishConfig": { "access": "public" diff --git a/npm/packs/font-awesome/package.json b/npm/packs/font-awesome/package.json index efbb174c50..9be3a70b1e 100644 --- a/npm/packs/font-awesome/package.json +++ b/npm/packs/font-awesome/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/font-awesome", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/font-awesome" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "@fortawesome/fontawesome-free": "^5.13.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/highlight.js/package.json b/npm/packs/highlight.js/package.json index 573df92a2d..9736e97565 100644 --- a/npm/packs/highlight.js/package.json +++ b/npm/packs/highlight.js/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/highlight.js", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1" + "@abp/core": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/jquery-form/package.json b/npm/packs/jquery-form/package.json index 91c40ba030..e76e1f8f6c 100644 --- a/npm/packs/jquery-form/package.json +++ b/npm/packs/jquery-form/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/jquery-form", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/jquery-form" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "jquery-form": "^4.3.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation-unobtrusive/package.json b/npm/packs/jquery-validation-unobtrusive/package.json index 8f6e689aeb..440f822d64 100644 --- a/npm/packs/jquery-validation-unobtrusive/package.json +++ b/npm/packs/jquery-validation-unobtrusive/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/jquery-validation-unobtrusive", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/jquery-validation-unobtrusive" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery-validation": "~5.0.0-beta.1", + "@abp/jquery-validation": "~5.0.0-beta.2", "jquery-validation-unobtrusive": "^3.2.11" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery-validation/package.json b/npm/packs/jquery-validation/package.json index 4d1fa17f11..2374460945 100644 --- a/npm/packs/jquery-validation/package.json +++ b/npm/packs/jquery-validation/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/jquery-validation", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/jquery-validation" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "jquery-validation": "^1.19.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jquery/package.json b/npm/packs/jquery/package.json index 48427999bd..286501099f 100644 --- a/npm/packs/jquery/package.json +++ b/npm/packs/jquery/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/jquery", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/jquery" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "jquery": "~3.6.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/jstree/package.json b/npm/packs/jstree/package.json index e7422924b9..25c2cc12a2 100644 --- a/npm/packs/jstree/package.json +++ b/npm/packs/jstree/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/jstree", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "jstree": "^3.3.9" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/lodash/package.json b/npm/packs/lodash/package.json index e59cdbb2c3..4d1ad4d008 100644 --- a/npm/packs/lodash/package.json +++ b/npm/packs/lodash/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/lodash", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/lodash" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "lodash": "^4.17.15" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/luxon/package.json b/npm/packs/luxon/package.json index 24a9f22ef5..19777ba38d 100644 --- a/npm/packs/luxon/package.json +++ b/npm/packs/luxon/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/luxon", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/luxon" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "luxon": "^1.24.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/malihu-custom-scrollbar-plugin/package.json b/npm/packs/malihu-custom-scrollbar-plugin/package.json index 21c2eb2873..4e8f856ddc 100644 --- a/npm/packs/malihu-custom-scrollbar-plugin/package.json +++ b/npm/packs/malihu-custom-scrollbar-plugin/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/malihu-custom-scrollbar-plugin", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/malihu-custom-scrollbar-plugin" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "malihu-custom-scrollbar-plugin": "^3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/markdown-it/package.json b/npm/packs/markdown-it/package.json index 01e3e73be1..b2ac23dd06 100644 --- a/npm/packs/markdown-it/package.json +++ b/npm/packs/markdown-it/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/markdown-it", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "markdown-it": "^11.0.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/owl.carousel/package.json b/npm/packs/owl.carousel/package.json index 96ce2a2911..b90e2f30e8 100644 --- a/npm/packs/owl.carousel/package.json +++ b/npm/packs/owl.carousel/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/owl.carousel", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "owl.carousel": "^2.3.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/popper.js/package.json b/npm/packs/popper.js/package.json index 175b942abb..5bfb3c5993 100644 --- a/npm/packs/popper.js/package.json +++ b/npm/packs/popper.js/package.json @@ -1,5 +1,5 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/popper.js", "publishConfig": { "access": "public" diff --git a/npm/packs/prismjs/package.json b/npm/packs/prismjs/package.json index 4b5602d5db..50ee04050e 100644 --- a/npm/packs/prismjs/package.json +++ b/npm/packs/prismjs/package.json @@ -1,12 +1,12 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/prismjs", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~5.0.0-beta.1", - "@abp/core": "~5.0.0-beta.1", + "@abp/clipboard": "~5.0.0-beta.2", + "@abp/core": "~5.0.0-beta.2", "prismjs": "^1.20.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/select2/package.json b/npm/packs/select2/package.json index d6f927c2cd..fbd909e87e 100644 --- a/npm/packs/select2/package.json +++ b/npm/packs/select2/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/select2", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/select2" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "select2": "^4.0.13" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/signalr/package.json b/npm/packs/signalr/package.json index 9291206096..481ee9fc83 100644 --- a/npm/packs/signalr/package.json +++ b/npm/packs/signalr/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/signalr", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "@microsoft/signalr": "~3.1.5" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/slugify/package.json b/npm/packs/slugify/package.json index 6ed3daf30d..4fcfde09aa 100644 --- a/npm/packs/slugify/package.json +++ b/npm/packs/slugify/package.json @@ -1,5 +1,5 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/slugify", "publishConfig": { "access": "public" diff --git a/npm/packs/star-rating-svg/package.json b/npm/packs/star-rating-svg/package.json index 4c2e7d1681..2e154aef75 100644 --- a/npm/packs/star-rating-svg/package.json +++ b/npm/packs/star-rating-svg/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/star-rating-svg", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "star-rating-svg": "^3.5.0" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/sweetalert2/package.json b/npm/packs/sweetalert2/package.json index f7f2b0f40b..0aa8031c21 100644 --- a/npm/packs/sweetalert2/package.json +++ b/npm/packs/sweetalert2/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/sweetalert2", "publishConfig": { "access": "public" }, + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory":"npm/packs/sweetalert2" + }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "sweetalert2": "^11.0.18" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/timeago/package.json b/npm/packs/timeago/package.json index a7c44b3aac..961f424511 100644 --- a/npm/packs/timeago/package.json +++ b/npm/packs/timeago/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/timeago", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/timeago" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "timeago": "^1.6.7" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/toastr/package.json b/npm/packs/toastr/package.json index af10fda1bd..084b4885a7 100644 --- a/npm/packs/toastr/package.json +++ b/npm/packs/toastr/package.json @@ -1,11 +1,16 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/toastr", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/toastr" + }, "publishConfig": { "access": "public" }, "dependencies": { - "@abp/jquery": "~5.0.0-beta.1", + "@abp/jquery": "~5.0.0-beta.2", "toastr": "^2.1.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/tui-editor/package.json b/npm/packs/tui-editor/package.json index 06271478af..f4d1b892aa 100644 --- a/npm/packs/tui-editor/package.json +++ b/npm/packs/tui-editor/package.json @@ -1,14 +1,14 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/tui-editor", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/codemirror": "~5.0.0-beta.1", - "@abp/highlight.js": "~5.0.0-beta.1", - "@abp/jquery": "~5.0.0-beta.1", - "@abp/markdown-it": "~5.0.0-beta.1", + "@abp/codemirror": "~5.0.0-beta.2", + "@abp/highlight.js": "~5.0.0-beta.2", + "@abp/jquery": "~5.0.0-beta.2", + "@abp/markdown-it": "~5.0.0-beta.2", "@toast-ui/editor": "^2.5.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/uppy/package.json b/npm/packs/uppy/package.json index 1513d33781..ed3fb91b7e 100644 --- a/npm/packs/uppy/package.json +++ b/npm/packs/uppy/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/uppy", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/core": "~5.0.0-beta.1", + "@abp/core": "~5.0.0-beta.2", "uppy": "^1.16.1" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/utils/package.json b/npm/packs/utils/package.json index 841988f87a..4bcdad9335 100644 --- a/npm/packs/utils/package.json +++ b/npm/packs/utils/package.json @@ -1,6 +1,6 @@ { "name": "@abp/utils", - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "scripts": { "prepublish": "yarn install --ignore-scripts && node prepublish.js", "ng": "ng", @@ -13,6 +13,11 @@ "access": "public" }, "main": "dist/bundles/abp-utils.umd.js", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git", + "directory": "npm/packs/utils" + }, "module": "dist/fesm2015/abp-utils.js", "es2015_ivy_ngcc": "__ivy_ngcc__/dist/fesm2015/abp-utils.js", "es2015": "dist/fesm2015/abp-utils.js", diff --git a/npm/packs/vee-validate/package.json b/npm/packs/vee-validate/package.json index 50276d1c3c..bb29b2c31c 100644 --- a/npm/packs/vee-validate/package.json +++ b/npm/packs/vee-validate/package.json @@ -1,11 +1,11 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/vee-validate", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/vue": "~5.0.0-beta.1", + "@abp/vue": "~5.0.0-beta.2", "vee-validate": "~3.4.4" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" diff --git a/npm/packs/virtual-file-explorer/package.json b/npm/packs/virtual-file-explorer/package.json index 0d113490de..3e22df29b2 100644 --- a/npm/packs/virtual-file-explorer/package.json +++ b/npm/packs/virtual-file-explorer/package.json @@ -1,12 +1,12 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/virtual-file-explorer", "publishConfig": { "access": "public" }, "dependencies": { - "@abp/clipboard": "~5.0.0-beta.1", - "@abp/prismjs": "~5.0.0-beta.1" + "@abp/clipboard": "~5.0.0-beta.2", + "@abp/prismjs": "~5.0.0-beta.2" }, "gitHead": "bb4ea17d5996f01889134c138d00b6c8f858a431" } diff --git a/npm/packs/vue/package.json b/npm/packs/vue/package.json index 01b9623b68..b24fee25c3 100644 --- a/npm/packs/vue/package.json +++ b/npm/packs/vue/package.json @@ -1,5 +1,5 @@ { - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "name": "@abp/vue", "publishConfig": { "access": "public" diff --git a/npm/update-gulp.js b/npm/update-gulp.js index 678c6a043b..d9a7c469aa 100644 --- a/npm/update-gulp.js +++ b/npm/update-gulp.js @@ -31,7 +31,7 @@ const updatePackages = (pkgJsonPath) => { const result = childProcess .execSync( `ncu "/^@abp.*$/" --packageFile ${pkgJsonPath} -u${ - program.prerelase ? ' --target greatest' : '' + program.prerelase ? ' --target newest' : '' }` ) .toString(); diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 75a8b0c9c0..f356175dd9 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -21,7 +21,8 @@ $solutions = ( "modules/users", "modules/virtual-file-explorer", "modules/blob-storing-database", - "modules/cms-kit" + "modules/cms-kit", + "modules/studio" ) # List of projects @@ -166,24 +167,32 @@ $projects = ( "modules/account/src/Volo.Abp.Account.Web", "modules/account/src/Volo.Abp.Account.Web.IdentityServer", "modules/account/src/Volo.Abp.Account.Blazor", + "modules/account/src/Volo.Abp.Account.Installer", + "studio/source-codes/Volo.Abp.Account.SourceCode", # modules/audit-logging "modules/audit-logging/src/Volo.Abp.AuditLogging.Domain", "modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared", "modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore", "modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB", + "modules/audit-logging/src/Volo.Abp.AuditLogging.Installer", + "studio/source-codes/Volo.Abp.AuditLogging.SourceCode", # modules/background-jobs "modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain", "modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared", "modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore", "modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB", + "modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer", + "studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode", # modules/basic-theme "modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme", "modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme", "modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme", "modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", + "modules/basic-theme/src/Volo.Abp.BasicTheme.Installer", + "studio/source-codes/Volo.Abp.BasicTheme.SourceCode", # modules/blogging "modules/blogging/src/Volo.Blogging.Application.Contracts.Shared", @@ -235,6 +244,8 @@ $projects = ( "modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor", "modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.Server", "modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor.WebAssembly", + "modules/feature-management/src/Volo.Abp.FeatureManagement.Installer", + "studio/source-codes/Volo.Abp.FeatureManagement.SourceCode", # modules/identity "modules/identity/src/Volo.Abp.Identity.Application.Contracts", @@ -251,6 +262,8 @@ $projects = ( "modules/identity/src/Volo.Abp.Identity.Blazor.Server", "modules/identity/src/Volo.Abp.Identity.Blazor.WebAssembly", "modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity", + "modules/identity/src/Volo.Abp.Identity.Installer", + "studio/source-codes/Volo.Abp.Identity.SourceCode", # modules/identityserver "modules/identityserver/src/Volo.Abp.IdentityServer.Domain", @@ -258,6 +271,8 @@ $projects = ( "modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore", "modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB", "modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer", + "modules/identityserver/src/Volo.Abp.IdentityServer.Installer", + "studio/source-codes/Volo.Abp.IdentityServer.SourceCode", # modules/permission-management "modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts", @@ -272,6 +287,8 @@ $projects = ( "modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor", "modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.Server", "modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.WebAssembly", + "modules/permission-management/src/Volo.Abp.PermissionManagement.Installer", + "studio/source-codes/Volo.Abp.PermissionManagement.SourceCode", # modules/setting-management "modules/setting-management/src/Volo.Abp.SettingManagement.Application.Contracts", @@ -286,6 +303,8 @@ $projects = ( "modules/setting-management/src/Volo.Abp.SettingManagement.HttpApi", "modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB", "modules/setting-management/src/Volo.Abp.SettingManagement.Web", + "modules/setting-management/src/Volo.Abp.SettingManagement.Installer", + "studio/source-codes/Volo.Abp.SettingManagement.SourceCode", # modules/tenant-management "modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts", @@ -300,6 +319,8 @@ $projects = ( "modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi", "modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB", "modules/tenant-management/src/Volo.Abp.TenantManagement.Web", + "modules/tenant-management/src/Volo.Abp.TenantManagement.Installer", + "studio/source-codes/Volo.Abp.TenantManagement.SourceCode", # modules/users "modules/users/src/Volo.Abp.Users.Abstractions", @@ -307,15 +328,21 @@ $projects = ( "modules/users/src/Volo.Abp.Users.Domain.Shared", "modules/users/src/Volo.Abp.Users.EntityFrameworkCore", "modules/users/src/Volo.Abp.Users.MongoDB", + "modules/users/src/Volo.Abp.Users.Installer", + "studio/source-codes/Volo.Abp.Users.SourceCode", # modules/virtual-file-explorer "modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Web", + "modules/virtual-file-explorer/src/Volo.Abp.VirtualFileExplorer.Installer", + "studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode", # modules/blob-storing-database "modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain", "modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared", "modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore", "modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB", + "modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer", + "studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode", # abp/cms-kit "modules/cms-kit/src/Volo.CmsKit.Admin.Application", @@ -341,5 +368,14 @@ $projects = ( "modules/cms-kit/src/Volo.CmsKit.Public.HttpApi", "modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client", "modules/cms-kit/src/Volo.CmsKit.Public.Web", - "modules/cms-kit/src/Volo.CmsKit.Web" + "modules/cms-kit/src/Volo.CmsKit.Web", + "modules/cms-kit/src/Volo.CmsKit.Installer", + "studio/source-codes/Volo.CmsKit.SourceCode", + + # abp/studio + "studio/src/Volo.Abp.Studio.Analyzing.Abstractions", + "studio/src/Volo.Abp.Studio.Domain.CommonServices", + "studio/src/Volo.Abp.Studio.Domain.Shared", + "studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions", + "studio/src/Volo.Abp.Studio.ModuleInstaller" ) diff --git a/studio/Volo.Abp.Studio.Open.sln b/studio/Volo.Abp.Studio.Open.sln new file mode 100644 index 0000000000..563e1d4602 --- /dev/null +++ b/studio/Volo.Abp.Studio.Open.sln @@ -0,0 +1,49 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{344A1096-CC05-42D1-BDDB-E254C27508A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Studio.Analyzing.Abstractions", "src\Volo.Abp.Studio.Analyzing.Abstractions\Volo.Abp.Studio.Analyzing.Abstractions.csproj", "{2271296E-33FD-46BE-97FD-9938193CB7D1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Studio.Domain.CommonServices", "src\Volo.Abp.Studio.Domain.CommonServices\Volo.Abp.Studio.Domain.CommonServices.csproj", "{1C86021F-E522-41A1-AC3F-01B0E474D75E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Studio.Domain.Shared", "src\Volo.Abp.Studio.Domain.Shared\Volo.Abp.Studio.Domain.Shared.csproj", "{28132E4E-FFB9-45C4-99AD-1BCA04B3E597}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Studio.ModuleInstaller", "src\Volo.Abp.Studio.ModuleInstaller\Volo.Abp.Studio.ModuleInstaller.csproj", "{4FA11334-D727-4C14-9D71-1DB46AC3BE9C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Studio.ModuleInstaller.Abstractions", "src\Volo.Abp.Studio.ModuleInstaller.Abstractions\Volo.Abp.Studio.ModuleInstaller.Abstractions.csproj", "{99679BF9-B888-4814-8E85-F751984CAFF8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2271296E-33FD-46BE-97FD-9938193CB7D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2271296E-33FD-46BE-97FD-9938193CB7D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2271296E-33FD-46BE-97FD-9938193CB7D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2271296E-33FD-46BE-97FD-9938193CB7D1}.Release|Any CPU.Build.0 = Release|Any CPU + {1C86021F-E522-41A1-AC3F-01B0E474D75E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C86021F-E522-41A1-AC3F-01B0E474D75E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C86021F-E522-41A1-AC3F-01B0E474D75E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C86021F-E522-41A1-AC3F-01B0E474D75E}.Release|Any CPU.Build.0 = Release|Any CPU + {28132E4E-FFB9-45C4-99AD-1BCA04B3E597}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28132E4E-FFB9-45C4-99AD-1BCA04B3E597}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28132E4E-FFB9-45C4-99AD-1BCA04B3E597}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28132E4E-FFB9-45C4-99AD-1BCA04B3E597}.Release|Any CPU.Build.0 = Release|Any CPU + {4FA11334-D727-4C14-9D71-1DB46AC3BE9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4FA11334-D727-4C14-9D71-1DB46AC3BE9C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4FA11334-D727-4C14-9D71-1DB46AC3BE9C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4FA11334-D727-4C14-9D71-1DB46AC3BE9C}.Release|Any CPU.Build.0 = Release|Any CPU + {99679BF9-B888-4814-8E85-F751984CAFF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {99679BF9-B888-4814-8E85-F751984CAFF8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {99679BF9-B888-4814-8E85-F751984CAFF8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {99679BF9-B888-4814-8E85-F751984CAFF8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {2271296E-33FD-46BE-97FD-9938193CB7D1} = {344A1096-CC05-42D1-BDDB-E254C27508A9} + {1C86021F-E522-41A1-AC3F-01B0E474D75E} = {344A1096-CC05-42D1-BDDB-E254C27508A9} + {28132E4E-FFB9-45C4-99AD-1BCA04B3E597} = {344A1096-CC05-42D1-BDDB-E254C27508A9} + {4FA11334-D727-4C14-9D71-1DB46AC3BE9C} = {344A1096-CC05-42D1-BDDB-E254C27508A9} + {99679BF9-B888-4814-8E85-F751984CAFF8} = {344A1096-CC05-42D1-BDDB-E254C27508A9} + EndGlobalSection +EndGlobal diff --git a/studio/source-codes/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.csproj b/studio/source-codes/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.csproj new file mode 100644 index 0000000000..dfcded7827 --- /dev/null +++ b/studio/source-codes/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.csproj @@ -0,0 +1,17 @@ + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip b/studio/source-codes/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip new file mode 100644 index 0000000000..b9f804564b Binary files /dev/null and b/studio/source-codes/Volo.Abp.Account.SourceCode/Volo.Abp.Account.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.csproj b/studio/source-codes/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.csproj new file mode 100644 index 0000000000..7645af74d4 --- /dev/null +++ b/studio/source-codes/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip b/studio/source-codes/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip new file mode 100644 index 0000000000..4659363044 Binary files /dev/null and b/studio/source-codes/Volo.Abp.AuditLogging.SourceCode/Volo.Abp.AuditLogging.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.csproj b/studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.csproj new file mode 100644 index 0000000000..0a33d7b57d --- /dev/null +++ b/studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.csproj @@ -0,0 +1,17 @@ + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip b/studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip new file mode 100644 index 0000000000..2dbaa13bb9 Binary files /dev/null and b/studio/source-codes/Volo.Abp.BackgroundJobs.SourceCode/Volo.Abp.BackgroundJobs.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.csproj b/studio/source-codes/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.csproj new file mode 100644 index 0000000000..ef90639f4c --- /dev/null +++ b/studio/source-codes/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip b/studio/source-codes/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip new file mode 100644 index 0000000000..aa881f36a0 Binary files /dev/null and b/studio/source-codes/Volo.Abp.BasicTheme.SourceCode/Volo.Abp.BasicTheme.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.csproj b/studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.csproj new file mode 100644 index 0000000000..2ccffa1bb8 --- /dev/null +++ b/studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip b/studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip new file mode 100644 index 0000000000..fdc85f636c Binary files /dev/null and b/studio/source-codes/Volo.Abp.BlobStoring.Database.SourceCode/Volo.Abp.BlobStoring.Database.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.csproj b/studio/source-codes/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.csproj new file mode 100644 index 0000000000..b670e3365e --- /dev/null +++ b/studio/source-codes/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip b/studio/source-codes/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip new file mode 100644 index 0000000000..e0e759b1f9 Binary files /dev/null and b/studio/source-codes/Volo.Abp.FeatureManagement.SourceCode/Volo.Abp.FeatureManagement.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.csproj b/studio/source-codes/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.csproj new file mode 100644 index 0000000000..0d61ae3ce3 --- /dev/null +++ b/studio/source-codes/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip b/studio/source-codes/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip new file mode 100644 index 0000000000..e243461ac0 Binary files /dev/null and b/studio/source-codes/Volo.Abp.Identity.SourceCode/Volo.Abp.Identity.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.csproj b/studio/source-codes/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.csproj new file mode 100644 index 0000000000..97478e7c99 --- /dev/null +++ b/studio/source-codes/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip b/studio/source-codes/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip new file mode 100644 index 0000000000..89613a9877 Binary files /dev/null and b/studio/source-codes/Volo.Abp.IdentityServer.SourceCode/Volo.Abp.IdentityServer.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.csproj b/studio/source-codes/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.csproj new file mode 100644 index 0000000000..9ddc7a7c16 --- /dev/null +++ b/studio/source-codes/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip b/studio/source-codes/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip new file mode 100644 index 0000000000..8e7e4413d0 Binary files /dev/null and b/studio/source-codes/Volo.Abp.PermissionManagement.SourceCode/Volo.Abp.PermissionManagement.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.csproj b/studio/source-codes/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.csproj new file mode 100644 index 0000000000..ab045bb678 --- /dev/null +++ b/studio/source-codes/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.csproj @@ -0,0 +1,17 @@ + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip b/studio/source-codes/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip new file mode 100644 index 0000000000..31ff3342c6 Binary files /dev/null and b/studio/source-codes/Volo.Abp.SettingManagement.SourceCode/Volo.Abp.SettingManagement.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.csproj b/studio/source-codes/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.csproj new file mode 100644 index 0000000000..e2744c5145 --- /dev/null +++ b/studio/source-codes/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip b/studio/source-codes/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip new file mode 100644 index 0000000000..0d98b22322 Binary files /dev/null and b/studio/source-codes/Volo.Abp.TenantManagement.SourceCode/Volo.Abp.TenantManagement.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.csproj b/studio/source-codes/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.csproj new file mode 100644 index 0000000000..375fe08a93 --- /dev/null +++ b/studio/source-codes/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip b/studio/source-codes/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip new file mode 100644 index 0000000000..5867c26ac5 Binary files /dev/null and b/studio/source-codes/Volo.Abp.Users.SourceCode/Volo.Abp.Users.SourceCode.zip differ diff --git a/studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.csproj b/studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.csproj new file mode 100644 index 0000000000..9a39ad9ec9 --- /dev/null +++ b/studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip b/studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip new file mode 100644 index 0000000000..ba904407f0 Binary files /dev/null and b/studio/source-codes/Volo.Abp.VirtualFileExplorer.SourceCode/Volo.Abp.VirtualFileExplorer.SourceCode.zip differ diff --git a/studio/source-codes/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.csproj b/studio/source-codes/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.csproj new file mode 100644 index 0000000000..9d5f78c58e --- /dev/null +++ b/studio/source-codes/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.csproj @@ -0,0 +1,18 @@ + + + + + + + + net6.0 + + + + + + true + content\ + + + diff --git a/studio/source-codes/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip b/studio/source-codes/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip new file mode 100644 index 0000000000..0044566350 Binary files /dev/null and b/studio/source-codes/Volo.CmsKit.SourceCode/Volo.CmsKit.SourceCode.zip differ diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo.Abp.Studio.Analyzing.Abstractions.csproj b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo.Abp.Studio.Analyzing.Abstractions.csproj new file mode 100644 index 0000000000..3998636495 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo.Abp.Studio.Analyzing.Abstractions.csproj @@ -0,0 +1,14 @@ + + + + + + netstandard2.0 + + + + + + + + diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/AbpStudioAnalyzingAbstractionsModule.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/AbpStudioAnalyzingAbstractionsModule.cs new file mode 100644 index 0000000000..6935ae3755 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/AbpStudioAnalyzingAbstractionsModule.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Modularity; + +namespace Volo.Abp.Studio.Analyzing +{ + public class AbpStudioAnalyzingAbstractionsModule : AbpModule + { + + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Application/ApplicationServiceModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Application/ApplicationServiceModel.cs new file mode 100644 index 0000000000..3618b58711 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Application/ApplicationServiceModel.cs @@ -0,0 +1,21 @@ +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Application +{ + [PackageContentItemName(ContentTypeName)] + public class ApplicationServiceModel : PackageContentItemModel + { + public const string ContentTypeName = "applicationService"; + + public string Namespace { get; set; } + + public string Summary { get; set; } + + public List ImplementingInterfaces { get; set; } + + public ApplicationServiceModel([NotNull] string name) : base(name) + { + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Authorization/PermissionModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Authorization/PermissionModel.cs new file mode 100644 index 0000000000..a386f5c4d5 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Authorization/PermissionModel.cs @@ -0,0 +1,24 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Authorization +{ + [PackageContentItemName(ContentTypeName)] + public class PermissionModel : PackageContentItemModel + { + public const string ContentTypeName = "permission"; + + public string DisplayName { get; } + + public bool IsEnabled { get; } + + public PermissionModel( + [NotNull] string name, + string displayName, + bool isEnabled) + : base(name) + { + DisplayName = displayName; + IsEnabled = isEnabled; + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/DatabaseCollectionModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/DatabaseCollectionModel.cs new file mode 100644 index 0000000000..5e78f54f87 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/DatabaseCollectionModel.cs @@ -0,0 +1,17 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Database +{ + [PackageContentItemName(ContentTypeName)] + public class DatabaseCollectionModel : PackageContentItemModel + { + public const string ContentTypeName = "databaseCollection"; + + public string EntityFullName { get; private set; } + + public DatabaseCollectionModel([NotNull] string name, string entityFullName) : base(name) + { + EntityFullName = Check.NotNullOrWhiteSpace(entityFullName, nameof(entityFullName)); + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/DatabaseTableModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/DatabaseTableModel.cs new file mode 100644 index 0000000000..a2af1acdbb --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/DatabaseTableModel.cs @@ -0,0 +1,17 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Database +{ + [PackageContentItemName(ContentTypeName)] + public class DatabaseTableModel : PackageContentItemModel + { + public const string ContentTypeName = "databaseTable"; + + public string EntityFullName { get; private set; } + + public DatabaseTableModel([NotNull] string name, string entityFullName) : base(name) + { + EntityFullName = Check.NotNullOrWhiteSpace(entityFullName, nameof(entityFullName)); + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/EfCoreDbContextModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/EfCoreDbContextModel.cs new file mode 100644 index 0000000000..292b58e65f --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/EfCoreDbContextModel.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Database +{ + [PackageContentItemName(ContentTypeName)] + public class EfCoreDbContextModel : PackageContentItemModel, IDbContextModel + { + public const string ContentTypeName = "efCoreDbContext"; + + public string Namespace { get; private set; } + + public string ConnectionStringName { get; set; } + + public List DatabaseTables { get; set; } + + public EfCoreDbContextModel( + [NotNull] string name, + [NotNull] string @namespace + ) : base(name) + { + Namespace = Check.NotNullOrWhiteSpace(@namespace, nameof(@namespace)); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/IDbContextModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/IDbContextModel.cs new file mode 100644 index 0000000000..08c00162f5 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/IDbContextModel.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.Studio.Analyzing.Models.Database +{ + public interface IDbContextModel + { + string ConnectionStringName { get; set; } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/MongoDbContextModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/MongoDbContextModel.cs new file mode 100644 index 0000000000..6fa6c80f79 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Database/MongoDbContextModel.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Database +{ + [PackageContentItemName(ContentTypeName)] + public class MongoDbContextModel : PackageContentItemModel, IDbContextModel + { + public const string ContentTypeName = "mongoDbContext"; + + public string Namespace { get; private set; } + + public string ConnectionStringName { get; set; } + + public List DatabaseCollections { get; set; } + + public MongoDbContextModel( + [NotNull] string name, + [NotNull] string @namespace + ) : base(name) + { + Namespace = Check.NotNullOrWhiteSpace(@namespace, nameof(@namespace)); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/AggregateRootModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/AggregateRootModel.cs new file mode 100644 index 0000000000..f31e07d8b1 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/AggregateRootModel.cs @@ -0,0 +1,12 @@ +namespace Volo.Abp.Studio.Analyzing.Models.Domain +{ + [PackageContentItemName(ContentTypeName)] + public class AggregateRootModel : EntityModel + { + public new const string ContentTypeName = "aggregateRoot"; + + public AggregateRootModel(string name) : base(name) + { + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/DomainServiceModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/DomainServiceModel.cs new file mode 100644 index 0000000000..6b4a648bcd --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/DomainServiceModel.cs @@ -0,0 +1,18 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Domain +{ + [PackageContentItemName(ContentTypeName)] + public class DomainServiceModel : PackageContentItemModel + { + public const string ContentTypeName = "domainService"; + + public string Namespace { get; set; } + + public string Summary { get; set; } + + public DomainServiceModel([NotNull] string name) : base(name) + { + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/EntityModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/EntityModel.cs new file mode 100644 index 0000000000..0b3e5a5708 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/EntityModel.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Studio.Analyzing.Models.Domain +{ + [PackageContentItemName(ContentTypeName)] + public class EntityModel : PackageContentItemModel + { + public const string ContentTypeName = "entity"; + + public string Namespace { get; set; } + + public string PrimaryKeyType { get; set; } + + public string Summary { get; set; } + + public List CollectionProperties { get; set; } + public List NavigationProperties { get; set; } + + public EntityModel(string name) : base(name) + { + CollectionProperties = new List(); + NavigationProperties = new List(); + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/RepositoryInterfaceModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/RepositoryInterfaceModel.cs new file mode 100644 index 0000000000..a44613b335 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Domain/RepositoryInterfaceModel.cs @@ -0,0 +1,20 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Domain +{ + [PackageContentItemName(ContentTypeName)] + public class RepositoryInterfaceModel : PackageContentItemModel + { + public const string ContentTypeName = "repositoryInterface"; + + public string Namespace { get; set; } + + public string Summary { get; set; } + + public EntityModel EntityModel { get; set; } + + public RepositoryInterfaceModel([NotNull] string name) : base(name) + { + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Feature/FeatureModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Feature/FeatureModel.cs new file mode 100644 index 0000000000..ee2b7ef48b --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Feature/FeatureModel.cs @@ -0,0 +1,40 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Feature +{ + [PackageContentItemName(ContentTypeName)] + public class FeatureModel : PackageContentItemModel + { + public const string ContentTypeName = "feature"; + + public string ValueType { get; } + + public string DefaultValue { get; } + + public string DisplayName { get; } + + public string Description { get; } + + public bool IsAvailableToHost { get; } + + public bool IsVisibleToClients { get; } + + public FeatureModel( + [NotNull] string name, + [NotNull] string valueType, + string defaultValue, + string displayName, + string description, + bool isAvailableToHost, + bool isVisibleToClients + ) : base(name) + { + ValueType = valueType; + DefaultValue = defaultValue; + DisplayName = displayName; + Description = description; + IsAvailableToHost = isAvailableToHost; + IsVisibleToClients = isVisibleToClients; + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Module/AbpModuleModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Module/AbpModuleModel.cs new file mode 100644 index 0000000000..9094d7d0b8 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Module/AbpModuleModel.cs @@ -0,0 +1,16 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Module +{ + [PackageContentItemName(ContentTypeName)] + public class AbpModuleModel : PackageContentItemModel + { + public const string ContentTypeName = "abpModule"; + + public string Namespace { get; set; } + + public AbpModuleModel([NotNull] string name) : base(name) + { + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentItemModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentItemModel.cs new file mode 100644 index 0000000000..749ecd8fa9 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentItemModel.cs @@ -0,0 +1,16 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models +{ + public abstract class PackageContentItemModel + { + public string ContentType { get; } + public string Name { get; } + + public PackageContentItemModel([NotNull] string name) + { + Name = Check.NotNullOrWhiteSpace(name, nameof(name)); + ContentType = PackageContentItemNameAttribute.GetName(GetType()); + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentItemNameAttribute.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentItemNameAttribute.cs new file mode 100644 index 0000000000..9a04fa274b --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentItemNameAttribute.cs @@ -0,0 +1,26 @@ +using System; +using Volo.Abp.Reflection; + +namespace Volo.Abp.Studio.Analyzing.Models +{ + public class PackageContentItemNameAttribute : Attribute + { + public string Name { get; } + + public PackageContentItemNameAttribute(string name) + { + Name = name; + } + + public static string GetName(Type type) + { + var attribute = ReflectionHelper.GetSingleAttributeOrDefault(type); + if (attribute == null) + { + throw new ApplicationException($"Given type {type.FullName} must have an {nameof(PackageContentItemNameAttribute)}, but not defined!"); + } + + return attribute.Name; + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentList.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentList.cs new file mode 100644 index 0000000000..ab519cb264 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageContentList.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Studio.Analyzing.Models +{ + public class PackageContentList : List + { + + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageModel.cs new file mode 100644 index 0000000000..74bcaac9cf --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/PackageModel.cs @@ -0,0 +1,20 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models +{ + public class PackageModel + { + public string Name { get; } + + public string Hash { get; } + + public PackageContentList Contents { get; } + + public PackageModel([NotNull] string name, [NotNull] string hash) + { + Name = Check.NotNullOrWhiteSpace(name, nameof(name)); + Contents = new PackageContentList(); + Hash = hash; + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Setting/SettingModel.cs b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Setting/SettingModel.cs new file mode 100644 index 0000000000..910f81099f --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Analyzing.Abstractions/Volo/Abp/Studio/Analyzing/Models/Setting/SettingModel.cs @@ -0,0 +1,26 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing.Models.Setting +{ + [PackageContentItemName(ContentTypeName)] + public class SettingModel : PackageContentItemModel + { + public const string ContentTypeName = "setting"; + + public string DefaultValue { get; set; } + + public string DisplayName { get; set; } + + public string Description { get; set; } + + public bool IsVisibleToClient { get; set; } + + public bool IsInherited { get; set; } + + public bool IsEncrypted { get; set; } + + public SettingModel([NotNull] string name) : base(name) + { + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo.Abp.Studio.Domain.CommonServices.csproj b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo.Abp.Studio.Domain.CommonServices.csproj new file mode 100644 index 0000000000..0f266a153e --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo.Abp.Studio.Domain.CommonServices.csproj @@ -0,0 +1,21 @@ + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/AbpStudioDomainCommonServicesModule.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/AbpStudioDomainCommonServicesModule.cs new file mode 100644 index 0000000000..84b2dba930 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/AbpStudioDomainCommonServicesModule.cs @@ -0,0 +1,17 @@ +using System.IO.Abstractions; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; + +namespace Volo.Abp.Studio +{ + [DependsOn( + typeof(AbpStudioDomainSharedModule) + )] + public class AbpStudioDomainCommonServicesModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddSingleton(new FileSystem()); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/AbpStudioException.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/AbpStudioException.cs new file mode 100644 index 0000000000..418e6067b9 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/AbpStudioException.cs @@ -0,0 +1,28 @@ +using System; +using System.Runtime.Serialization; +using Microsoft.Extensions.Logging; + +namespace Volo.Abp.Studio +{ + public class AbpStudioException : BusinessException + { + public AbpStudioException( + string code = null, + string message = null, + string details = null, + Exception innerException = null, + LogLevel logLevel = LogLevel.Warning) + : base(code, message, details, innerException, logLevel) + { + Code = code; + Details = details; + LogLevel = logLevel; + } + + public AbpStudioException(SerializationInfo serializationInfo, StreamingContext context) + : base(serializationInfo, context) + { + + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Helpers/PathHelper.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Helpers/PathHelper.cs new file mode 100644 index 0000000000..b741e37cf8 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Helpers/PathHelper.cs @@ -0,0 +1,37 @@ +using System; +using System.Runtime.InteropServices; +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Helpers +{ + public static class PathHelper + { + public static string GetRelativePath([NotNull] string basePath, [NotNull] string targetPath) + { + Check.NotNull(basePath, nameof(basePath)); + Check.NotNull(targetPath, nameof(targetPath)); + + return new Uri(basePath).MakeRelativeUri(new Uri(targetPath)).ToString(); + } + + public static string EnsureForwardSlash(string path) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return path.Replace("\\", "/"); + } + + return path; + } + + public static string Normalize(string path) + { + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + return path.Replace("/", "\\"); + } + + return path; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/AbpModuleFileManager.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/AbpModuleFileManager.cs new file mode 100644 index 0000000000..ccb90ad2e4 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/AbpModuleFileManager.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.IO.Abstractions; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Studio.Packages.Modifying +{ + public class AbpModuleFileManager : IAbpModuleFileManager, ITransientDependency + { + public IFileSystem FileSystem { get; } + + public AbpModuleFileManager(IFileSystem fileSystem) + { + FileSystem = fileSystem; + } + + public async Task AddDependency(string filePath, string moduleToAdd) + { + var fileContent = await FileSystem.File.ReadAllTextAsync(filePath); + var moduleName = moduleToAdd.Split(".").Last(); + var moduleNamespace = moduleToAdd.RemovePostFix("." + moduleName); + var usingStatement = $"using {moduleNamespace};"; + var dependsOnStart = $"DependsOn("; + + if (fileContent.Contains($"typeof({moduleName})")) + { + // module already added + return; + } + + if (!fileContent.NormalizeLineEndings().SplitToLines().Any(l=> l.Trim().StartsWith("namespace ") && l.Contains(moduleNamespace)) && + !fileContent.Contains(usingStatement) + ) + { + fileContent = usingStatement + Environment.NewLine + fileContent; + } + + if (!fileContent.Contains(dependsOnStart)) + { + var fileLines = fileContent.NormalizeLineEndings().SplitToLines().ToList(); + fileLines.InsertBefore(l=> l.Contains("public") && l.Contains("class"), $" [DependsOn(typeof({moduleName}))]"); + fileContent = fileLines.JoinAsString(Environment.NewLine); + } + else + { + var fileLines = fileContent.NormalizeLineEndings().SplitToLines().ToList(); + var dependsOnStartLine = fileLines.First(l=> l.Contains(dependsOnStart)); + var dependsOnStartLineModified = dependsOnStartLine.Replace(dependsOnStart, + dependsOnStart + Environment.NewLine + + $" typeof({moduleName})," + ); + fileContent = fileContent.Replace(dependsOnStartLine, dependsOnStartLineModified); + } + + FileSystem.File.WriteAllTextAsync(filePath, fileContent); + } + + public async Task ExtractModuleNameWithNamespace(string filePath) + { + var fileContent = await FileSystem.File.ReadAllTextAsync(filePath); + + var fileLines = fileContent.NormalizeLineEndings().SplitToLines(); + + var lineOfClassName = fileLines.First(l=> l.Contains("public") && l.Contains("class")); + + var moduleName = lineOfClassName.Split(":")[0].Trim().Split(" ").Last(); + + var lineOfNamespace = fileLines.First(l=> l.Trim().StartsWith("namespace")); + + var moduleNamespace = lineOfNamespace.Split(" ").Skip(1).First(); + + return moduleNamespace + "." + moduleName; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/CsprojFileManager.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/CsprojFileManager.cs new file mode 100644 index 0000000000..e1bf7bccd2 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/CsprojFileManager.cs @@ -0,0 +1,204 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using System.Xml; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.Helpers; +using Volo.Abp.Studio.Package; +using Volo.Abp.Studio.Xml; + +namespace Volo.Abp.Studio.Packages.Modifying +{ + public class CsprojFileManager: XmlFileManagerBase, ICsprojFileManager, ITransientDependency + { + public async Task AddProjectReferenceAsync(string filePath, string projectToReference) + { + var document = await GetXmlDocumentAsync(filePath); + + /*if (document.SelectNodes($"/Project/ItemGroup/ProjectReference[ends-with(@Include, '{Path.GetFileName(projectToReference)}')]").Count > 0) + { + return; + }*/ + + var packageReferenceToSameProject = + document.SelectNodes( + $"/Project/ItemGroup/PackageReference[starts-with(@Include, '{Path.GetFileName(projectToReference).RemovePostFix(".csproj")}')]" + ); + + if (packageReferenceToSameProject.Count > 0) + { + packageReferenceToSameProject[0].ParentNode.RemoveChild(packageReferenceToSameProject[0]); + } + + var relativePath = PathHelper.GetRelativePath(filePath, projectToReference); + + var itemGroupNode = GetOrCreateItemGroupNode(document); + + var newNode = document.CreateElement("ProjectReference"); + + var includeAttr = document.CreateAttribute("Include"); + includeAttr.Value = relativePath; + newNode.Attributes.Append(includeAttr); + + itemGroupNode.AppendChild(newNode); + + await SaveXmlDocumentAsync(filePath, document); + } + + public async Task AddPackageReferenceAsync(string filePath, string packageName, string version) + { + var document = await GetXmlDocumentAsync(filePath); + + if (document.SelectNodes($"/Project/ItemGroup/PackageReference[starts-with(@Include, '{packageName}')]").Count > 0) + { + // Package reference is already added. + return; + } + + var itemGroupNode = GetOrCreateItemGroupNode(document); + + var newNode = document.CreateElement("PackageReference"); + + var includeAttr = document.CreateAttribute("Include"); + includeAttr.Value = packageName; + newNode.Attributes.Append(includeAttr); + + var versionAttr = document.CreateAttribute("Version"); + versionAttr.Value = version; + newNode.Attributes.Append(versionAttr); + + itemGroupNode.AppendChild(newNode); + itemGroupNode.AppendChild(document.CreateWhitespace(Environment.NewLine + " ")); + + await SaveXmlDocumentAsync(filePath, document); + } + + public async Task ConvertPackageReferenceToProjectReferenceAsync(string filePath, string projectToReference) + { + var document = await GetXmlDocumentAsync(filePath); + + var packageName = Path.GetFileName(projectToReference).RemovePostFix(".csproj"); + + var matchedNodes = document.SelectNodes($"/Project/ItemGroup/PackageReference[starts-with(@Include, '{packageName}')]"); + + if (matchedNodes.Count == 0) + { + return; + } + + XmlNode targetNode = null; + + foreach (XmlNode matchedNode in matchedNodes) + { + if (matchedNode.Attributes["Include"].Value == packageName) + { + targetNode = matchedNode; + break; + } + } + + if (targetNode == null) + { + return; + } + + var targetNodeParent = targetNode.ParentNode; + + targetNodeParent.RemoveChild(targetNode); + + var relativePath = PathHelper.GetRelativePath(filePath, projectToReference); + + var newNode = document.CreateElement("ProjectReference"); + + var includeAttr = document.CreateAttribute("Include"); + includeAttr.Value = relativePath; + newNode.Attributes.Append(includeAttr); + + targetNodeParent.AppendChild(newNode); + + await SaveXmlDocumentAsync(filePath, document); + } + + public async Task GetTargetFrameworkAsync(string filePath) + { + var document = await GetXmlDocumentAsync(filePath); + + var nodes = document["Project"]?["PropertyGroup"]?.SelectNodes("TargetFramework"); + + if (nodes == null || nodes.Count == 0) + { + return null; + } + + return nodes[0].InnerText.Trim(); + } + + public async Task> GetDependencyListAsync(string filePath) + { + var result = new List(); + + var document = await GetXmlDocumentAsync(filePath); + + var packageReferenceNodes = document.SelectNodes($"/Project/ItemGroup/PackageReference"); + var projectReferenceNodes = document.SelectNodes($"/Project/ItemGroup/ProjectReference"); + + if (packageReferenceNodes != null && packageReferenceNodes.Count > 0) + { + foreach (XmlNode packageReferenceNode in packageReferenceNodes) + { + result.Add( + new PackageDependency( + packageReferenceNode.Attributes["Include"].Value, + packageReferenceNode.Attributes["Version"].Value + ) + ); + } + } + + if (projectReferenceNodes != null && projectReferenceNodes.Count > 0) + { + foreach (XmlNode projectReferenceNode in projectReferenceNodes) + { + result.Add( + new PackageDependency( + Path.GetFullPath(Path.Combine(Path.GetDirectoryName(filePath), projectReferenceNode.Attributes["Include"].Value)) + ) + ); + } + } + + return result; + } + + private XmlNode GetOrCreateItemGroupNode(XmlDocument document) + { + var nodes = document["Project"].SelectNodes("ItemGroup"); + + if (nodes == null || nodes.Count < 1) + { + var newNode = document.CreateElement("ItemGroup"); + document["Project"].AppendChild(newNode); + return newNode; + } + + foreach (XmlNode node in nodes) + { + if (node.SelectNodes("ProjectReference").Count > 0) + { + return node; + } + } + + foreach (XmlNode node in nodes) + { + if (node.SelectNodes("PackageReference").Count > 0) + { + return node; + } + } + + return nodes[0]; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/IAbpModuleFileManager.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/IAbpModuleFileManager.cs new file mode 100644 index 0000000000..7eb2060e48 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/IAbpModuleFileManager.cs @@ -0,0 +1,11 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.Packages.Modifying +{ + public interface IAbpModuleFileManager + { + Task AddDependency(string filePath, string moduleToAdd); + + Task ExtractModuleNameWithNamespace(string filePath); + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/ICsprojFileManager.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/ICsprojFileManager.cs new file mode 100644 index 0000000000..af8c466c17 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Modifying/ICsprojFileManager.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Studio.Package; + +namespace Volo.Abp.Studio.Packages.Modifying +{ + public interface ICsprojFileManager + { + Task AddProjectReferenceAsync(string filePath, string projectToReference); + + Task AddPackageReferenceAsync(string filePath, string packageName, string version); + + Task ConvertPackageReferenceToProjectReferenceAsync(string filePath, string projectToReference); + + Task GetTargetFrameworkAsync(string filePath); + + Task> GetDependencyListAsync(string filePath); + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/INugetSourceCodeStore.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/INugetSourceCodeStore.cs new file mode 100644 index 0000000000..6fce22dbe0 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/INugetSourceCodeStore.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.Nuget +{ + public interface INugetSourceCodeStore + { + Task GetCachedSourceCodeFilePathAsync(string name, + string type, + string version = null, + bool includePreReleases = false); + + Task GetCachedDllFilePathAsync(string name, + string type, + string version = null, + bool includePreReleases = false, + bool includeDependencies = false); + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/NugetPackageCacheManager.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/NugetPackageCacheManager.cs new file mode 100644 index 0000000000..b4a21560cb --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/NugetPackageCacheManager.cs @@ -0,0 +1,36 @@ +using System; +using System.IO; +using System.Threading.Tasks; +using Volo.Abp.Cli.Utils; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.Helpers; + +namespace Volo.Abp.Studio.Nuget +{ + public class NugetPackageCacheManager : ITransientDependency + { + private readonly ICmdHelper _cmdHelper; + + public NugetPackageCacheManager(ICmdHelper cmdHelper) + { + _cmdHelper = cmdHelper; + } + + public async Task CachePackageAsync(string packageName, string version, bool deleteAfter = true) + { + var temporaryFolder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); + + Directory.CreateDirectory(temporaryFolder); + + _cmdHelper.RunCmdAndGetOutput("dotnet new console -lang c#", temporaryFolder); + _cmdHelper.RunCmdAndGetOutput($"dotnet add package {packageName} --version {version}", temporaryFolder); + + if (deleteAfter) + { + Directory.Delete(temporaryFolder, true); + } + + return temporaryFolder; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/NugetSourceCodeStore.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/NugetSourceCodeStore.cs new file mode 100644 index 0000000000..c81d95b2dc --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/NugetSourceCodeStore.cs @@ -0,0 +1,163 @@ +using System; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Cli.NuGet; +using Volo.Abp.Cli.ProjectBuilding; +using Volo.Abp.Cli.Utils; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.Helpers; +using Volo.Abp.Studio.Modules; + +namespace Volo.Abp.Studio.Nuget +{ + [Dependency(ReplaceServices = true)] + public class NugetSourceCodeStore : ISourceCodeStore, INugetSourceCodeStore, ITransientDependency + { + private readonly NuGetService _nuGetService; + private readonly NugetPackageCacheManager _nugetPackageCacheManager; + private readonly ICmdHelper _cmdHelper; + + public NugetSourceCodeStore( + NuGetService nuGetService, + NugetPackageCacheManager nugetPackageCacheManager, + ICmdHelper cmdHelper) + { + _nuGetService = nuGetService; + _nugetPackageCacheManager = nugetPackageCacheManager; + _cmdHelper = cmdHelper; + } + + public async Task GetAsync( + string name, + string type, + string version = null, + string templateSource = null, + bool includePreReleases = false) + { + name = GetNugetPackageName(name, type); + + var latestVersion = await GetLatestVersionAsync(name, includePreReleases); + + version ??= latestVersion; + + var localCachedFilePath = await GetLocalCacheSourceCodeFilePathInternal(name, version); + + if (localCachedFilePath == null) + { + return null; + } + + return new TemplateFile(await File.ReadAllBytesAsync(localCachedFilePath), version, latestVersion, version); + } + + public async Task GetCachedSourceCodeFilePathAsync(string name, string type, string version = null, + bool includePreReleases = false) + { + name = GetNugetPackageName(name, type); + + version ??= await GetLatestVersionAsync(name, includePreReleases); + + return await GetLocalCacheSourceCodeFilePathInternal(name, version); + } + + public async Task GetCachedDllFilePathAsync(string name, string type, string version = null, bool includePreReleases = false, bool includeDependencies = false) + { + if (type == SourceCodeTypes.Template) + { + name = TemplateNugetPackageInfoProvider.GetNugetPackageName(name); + } + + version ??= await GetLatestVersionAsync(name, includePreReleases); + + var localDllFolder = Path.Combine( + GetLocalNugetCachePath(), + name, + version, + "lib"); + + if (!Directory.Exists(localDllFolder) || + (includeDependencies && !Directory.GetFiles(localDllFolder, $"*Volo.Abp.Studio.ModuleInstaller.dll", SearchOption.AllDirectories).Any())) + { + if (includeDependencies) + { + var temporaryFolder = await _nugetPackageCacheManager.CachePackageAsync(name, version, false); + + var outputFolder = Path.GetDirectoryName( + Directory + .GetFiles(localDllFolder, $"*{name}.dll", SearchOption.AllDirectories) + .First() + ); + + _cmdHelper.RunCmdAndGetOutput($"dotnet build -o {outputFolder}", temporaryFolder); + + Directory.Delete(temporaryFolder, true); + } + else + { + await _nugetPackageCacheManager.CachePackageAsync(name, version); + } + } + + if (!Directory.Exists(localDllFolder)) + { + return null; + } + + return Directory.GetFiles(localDllFolder, $"{name}.dll", SearchOption.AllDirectories).FirstOrDefault(); + } + + private async Task GetLatestVersionAsync(string nugetPackage, bool includePreReleases) + { + var v = await _nuGetService.GetLatestVersionOrNullAsync(nugetPackage, includePreReleases); + + return v.ToString(); + } + + private async Task GetLocalCacheSourceCodeFilePathInternal(string name, string version) + { + var localCacheFile = Path.Combine( + GetLocalNugetCachePath(), + name, + version, + "content", + $"{name}.zip"); + + + if (!File.Exists(localCacheFile)) + { + await _nugetPackageCacheManager.CachePackageAsync(name, version); + + if (!File.Exists(localCacheFile)) + { + return null; + } + } + + return localCacheFile; + } + + private string GetLocalNugetCachePath() + { + return Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), + ".nuget", + "packages"); + } + + private string GetNugetPackageName(string name, string type) + { + if (type == SourceCodeTypes.Template) + { + return TemplateNugetPackageInfoProvider.GetNugetPackageName(name); + } + + if (type == SourceCodeTypes.Module) + { + return name + ModuleConsts.SourceCorePackagePostfix; + } + + return name; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/TemplateNugetPackageInfoProvider.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/TemplateNugetPackageInfoProvider.cs new file mode 100644 index 0000000000..03765f96c1 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Nuget/TemplateNugetPackageInfoProvider.cs @@ -0,0 +1,18 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.Nuget +{ + public static class TemplateNugetPackageInfoProvider + { + public static string GetNugetPackageName(string template) + { + switch (template) + { + case "app": + return "Cotur.Abp.Basic.Template"; // todo: replace with real template! + default: + return null; + } + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/PackageDependency.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/PackageDependency.cs new file mode 100644 index 0000000000..1a9d2e1396 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/PackageDependency.cs @@ -0,0 +1,30 @@ +using System; +using System.IO; + +namespace Volo.Abp.Studio.Package +{ + public class PackageDependency + { + public ReferenceType Type { get; } + + public string Name { get; } + + public string Version { get; } + + public string Path { get; } + + public PackageDependency(string name, string version) + { + Type = ReferenceType.Package; + Name = name; + Version = version; + } + + public PackageDependency(string path) + { + Type = ReferenceType.Project; + Path = path; + Name = System.IO.Path.GetFileName(path).RemovePostFix(".csproj"); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/PackageTypes.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/PackageTypes.cs new file mode 100644 index 0000000000..cc5870f783 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/PackageTypes.cs @@ -0,0 +1,244 @@ +using System.Collections.Generic; + +namespace Volo.Abp.Studio.Packages +{ + public static class PackageTypes + { + public const string Domain = "lib.domain"; + public const string DomainShared = "lib.domain-shared"; + public const string Application = "lib.application"; + public const string ApplicationContracts = "lib.application-contracts"; + public const string EntityFrameworkCore = "lib.ef"; + public const string MongoDB = "lib.mongodb"; + public const string HttpApi = "lib.http-api"; + public const string HttpApiClient = "lib.http-api-client"; + public const string Mvc = "lib.mvc"; + public const string Blazor = "lib.blazor"; + public const string BlazorWebAssembly = "lib.blazor-wasm"; + public const string BlazorServer = "lib.blazor-server"; + public const string Test = "lib.test"; + + public const string HostHttpApi = "host.http-api"; + public const string HostMvc = "host.mvc"; + public const string HostBlazorWebAssembly = "host.blazor-wasm"; + public const string HostBlazorServer = "host.blazor-server"; + public const string HostApiGatewayOcelot = "host.api-gateway-ocelot"; + + public static string CalculateDefaultPackageNameForModule( + string moduleName, + string packageType) + { + switch (packageType) + { + case Domain: + return moduleName + ".Domain"; + case DomainShared: + return moduleName + ".Domain.Shared"; + case Application: + return moduleName + ".Application"; + case ApplicationContracts: + return moduleName + ".Application.Contracts"; + case EntityFrameworkCore: + return moduleName + ".EntityFrameworkCore"; + case HttpApi: + return moduleName + ".HttpApi"; + case HttpApiClient: + return moduleName + ".HttpApi.Client"; + case MongoDB: + return moduleName + ".MongoDB"; + case Mvc: + return moduleName + ".Web"; + case Blazor: + return moduleName + ".Blazor"; + case BlazorWebAssembly: + return moduleName + ".Blazor.WebAssembly"; + case BlazorServer: + return moduleName + ".Blazor.Server"; + case HostHttpApi: + return moduleName + ".HttpApi.Host"; + case HostMvc: + return moduleName + ".Web.Host"; + case HostBlazorWebAssembly: + return moduleName + ".Blazor.Client"; + case HostBlazorServer: + return moduleName + ".Blazor.Host"; + case HostApiGatewayOcelot: + return moduleName + ".Gateway"; + default: + throw new AbpStudioException(AbpStudioErrorCodes.PackageNameMustBeSpecified); + } + } + + public static bool IsHostProject(string packageType) + { + return + packageType == HostMvc || + packageType == HostHttpApi || + packageType == HostBlazorWebAssembly || + packageType == HostBlazorServer || + packageType == HostApiGatewayOcelot; + } + + public static bool IsUiProject(string packageType) + { + return + packageType == Mvc || + packageType == BlazorWebAssembly || + packageType == BlazorServer; + } + + public static string GetHostTypeOfUi(string packageType, bool useHostBlazorServerForMvcPackages = false) + { + return packageType switch + { + Mvc => !useHostBlazorServerForMvcPackages ? HostMvc : HostBlazorServer, + BlazorWebAssembly => HostBlazorWebAssembly, + BlazorServer => HostBlazorServer, + _ => null + }; + } + + public static List GetSuggestedInstallationType(string packageType) + { + if (packageType == DomainShared) + { + return new List() + { + Domain, + DomainShared, + ApplicationContracts + }; + } + + if (packageType == Domain) + { + return new List() + { + Domain, + Application + }; + } + + if (packageType == ApplicationContracts) + { + return new List() + { + Application, + ApplicationContracts, + Mvc, + Blazor, + BlazorServer, + BlazorWebAssembly, + HttpApi + }; + } + + if (packageType == Application) + { + return new List() + { + Application, + HostMvc, + HostBlazorServer, + HostBlazorWebAssembly, + HostHttpApi + }; + } + + if (packageType == EntityFrameworkCore) + { + return new List() + { + EntityFrameworkCore, + HostMvc, + HostBlazorServer, + HostBlazorWebAssembly, + HostHttpApi + }; + } + + if (packageType == MongoDB) + { + return new List() + { + MongoDB, + HostMvc, + HostBlazorServer, + HostBlazorWebAssembly, + HostHttpApi + }; + } + + if (packageType == HttpApi) + { + return new List() + { + HttpApi, + HostMvc, + HostBlazorServer, + HostBlazorWebAssembly, + HostHttpApi + }; + } + + if (packageType == HttpApiClient) + { + return new List() + { + HttpApiClient, + HostMvc, + HostBlazorServer, + HostBlazorWebAssembly, + HostHttpApi + }; + } + + if (packageType == Mvc) + { + return new List() + { + Mvc, + HostMvc + }; + } + + if (packageType == Blazor) + { + return new List() + { + Blazor, + BlazorServer, + BlazorWebAssembly + }; + } + + if (packageType == BlazorServer) + { + return new List() + { + BlazorServer, + HostBlazorServer + }; + } + + if (packageType == BlazorWebAssembly) + { + return new List() + { + BlazorWebAssembly, + HostBlazorWebAssembly + }; + } + + if (packageType == Test) + { + return new List() + { + Test + }; + } + + return new List(); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/ReferenceType.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/ReferenceType.cs new file mode 100644 index 0000000000..5c4d83b2f9 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Package/ReferenceType.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.Studio.Package +{ + public enum ReferenceType + { + Project = 1, + Package = 2 + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/DotnetSlnFileModifierService.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/DotnetSlnFileModifierService.cs new file mode 100644 index 0000000000..5fadc93569 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/DotnetSlnFileModifierService.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Abstractions; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.Helpers; + +namespace Volo.Abp.Studio.Solution +{ + public class DotnetSlnFileModifierService : IDotnetSlnFileModifierService, ITransientDependency + { + public IFileSystem FileSystem { get; } + + public DotnetSlnFileModifierService(IFileSystem fileSystem) + { + FileSystem = fileSystem; + } + + public async Task AddProjectAsync(string slnFilePath, string projectPath, string slnTargetFolder = "src") + { + var projectName = FileSystem.Path.GetFileName(projectPath).RemovePostFix(".csproj"); + var folderId = await GetOrAddFolderIdAsync(slnFilePath, slnTargetFolder); + var slnFileLines = (await FileSystem.File.ReadAllTextAsync(slnFilePath)) + .Split(Environment.NewLine).ToList(); + + if (slnFileLines.Any(l => l.Contains($"\"{projectName}\"") && l.Contains("9A19103F-16F7-4668-BE54-9A1E7A4F7556"))) + { + throw new AbpStudioException(AbpStudioErrorCodes.ProjectWithSameNameAlreadyExistInTheSolutionFile) + .WithData("Solution Path", slnFilePath) + .WithData("Project Name", projectName); + } + + var projectId = Guid.NewGuid().ToString(); + var relativeProjectPath = PathHelper.GetRelativePath(slnFilePath, projectPath).Replace("/", "\\"); + var newProjectLine = "Project(\"{9A19103F-16F7-4668-BE54-9A1E7A4F7556}\") = \"" + projectName + "\"," + + " \"" + relativeProjectPath + "\", \"{" + projectId + "}\"" + + Environment.NewLine + "EndProject"; + + slnFileLines.InsertAfter(l => l.Trim().Equals("EndProject"), newProjectLine); + + var newPostSolutionLine = + " {" + projectId + "}.Debug|Any CPU.ActiveCfg = Debug|Any CPU" + Environment.NewLine + + " {" + projectId + "}.Debug|Any CPU.Build.0 = Debug|Any CPU" + Environment.NewLine + + " {" + projectId + "}.Release|Any CPU.ActiveCfg = Release|Any CPU" + Environment.NewLine + + " {" + projectId + "}.Release|Any CPU.Build.0 = Release|Any CPU"; + + if (!slnFileLines.Any(l => l.Contains("GlobalSection") && l.Contains("ProjectConfigurationPlatforms"))) + { + slnFileLines.InsertBefore(l => l.Trim().Equals("EndGlobal"), " GlobalSection(ProjectConfigurationPlatforms) = postSolution"); + slnFileLines.InsertBefore(l => l.Trim().Equals("EndGlobal"), " EndGlobalSection"); + } + + slnFileLines.InsertAfter(l => l.Contains("GlobalSection") && l.Contains("ProjectConfigurationPlatforms"), + newPostSolutionLine); + + var newPreSolutionLine = + " {" + projectId + "} = {" + folderId + "}"; + + + if (!slnFileLines.Any(l => l.Contains("GlobalSection") && l.Contains("NestedProjects"))) + { + slnFileLines.InsertBefore(l => l.Trim().Equals("EndGlobal"), " GlobalSection(NestedProjects) = preSolution"); + slnFileLines.InsertBefore(l => l.Trim().Equals("EndGlobal"), " EndGlobalSection"); + } + + slnFileLines.InsertAfter(l => l.Contains("GlobalSection") && l.Contains("NestedProjects"), newPreSolutionLine); + + await FileSystem.File.WriteAllTextAsync(slnFilePath, string.Join(Environment.NewLine, slnFileLines)); + } + + private async Task GetOrAddFolderIdAsync(string solutionFile, string folderName, string parentFolderId = null) + { + if (folderName.Contains("/") && parentFolderId == null) + { + var parents = folderName.Split("/").SkipLast(1).JoinAsString("/"); + folderName = folderName.Split("/").Last(); + + parentFolderId = await GetOrAddFolderIdAsync(solutionFile, parents); + } + + var file = await FileSystem.File.ReadAllTextAsync(solutionFile); + var lines = file.Split(Environment.NewLine).ToList(); + string folderId; + + var folderLineIndex = lines.FindIndex(l => + l.Contains("2150E333-8FDC-42A3-9474-1A3956D46DE8") && l.Contains("\"" + folderName + "\"")); + + if (folderLineIndex < 0) + { + folderId = Guid.NewGuid().ToString(); + var newFolderLine = "Project(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\") = \"" + folderName + "\", \"" + + folderName + "\", \"{" + folderId + "}\"" + + Environment.NewLine + "EndProject"; + + if (lines.Any(l => l.Trim().Equals("EndProject"))) + { + lines.InsertAfter(l => l.Trim().Equals("EndProject"), newFolderLine); + } + else + { + lines.InsertAfter(l => l.StartsWith("Microsoft Visual Studio Solution File"), newFolderLine); + } + + if (parentFolderId != null && lines.Any(l=>l.Contains("GlobalSection") && l.Contains("NestedProjects"))) + { + var newPreSolutionLine = + " {" + folderId + "} = {" + parentFolderId + "}"; + + lines.InsertAfter(l => l.Contains("GlobalSection") && l.Contains("NestedProjects"), + newPreSolutionLine); + } + + await FileSystem.File.WriteAllTextAsync(solutionFile, string.Join(Environment.NewLine, lines)); + } + else + { + folderId = lines[folderLineIndex].Replace("\"", " ").Replace("{", " ").Replace("}", " ").TrimEnd() + .Split(" ").Last(); + } + + return folderId; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/IDotnetSlnFileModifierService.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/IDotnetSlnFileModifierService.cs new file mode 100644 index 0000000000..5bb26bf9d9 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/IDotnetSlnFileModifierService.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.Solution +{ + public interface IDotnetSlnFileModifierService + { + Task AddProjectAsync(string slnFile, string projectPath, string slnTargetFolder = "src"); + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs new file mode 100644 index 0000000000..4f51330db7 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/ISolutionFileModuleAdder.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.Solution +{ + public interface ISolutionFileModuleAdder + { + Task AddAsync(string TargetModule, string ModuleName); + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs new file mode 100644 index 0000000000..cafd0f9281 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Solution/SolutionFileModuleAdder.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.Modules; + +namespace Volo.Abp.Studio.Solution +{ + public class SolutionFileModuleAdder : ISolutionFileModuleAdder, ITransientDependency + { + private readonly IDotnetSlnFileModifierService _dotnetSlnFileModifierService; + + public SolutionFileModuleAdder(IDotnetSlnFileModifierService dotnetSlnFileModifierService) + { + _dotnetSlnFileModifierService = dotnetSlnFileModifierService; + } + + public async Task AddAsync(string TargetModule, string ModuleName) + { + var targetFolder = Path.Combine(Path.GetDirectoryName(TargetModule), "modules", ModuleName);; + var slnFile = TargetModule.RemovePostFix(ModuleConsts.FileExtension) + ".sln"; + var moduleSrcFolder = Path.Combine(targetFolder, "src"); + var moduleTestFolder = Path.Combine(targetFolder, "test"); + + await AddProjectsUnderDirectoryToSolutionFile(slnFile, moduleSrcFolder, $"modules/{ModuleName}"); + await AddProjectsUnderDirectoryToSolutionFile(slnFile, moduleTestFolder, $"test/{ModuleName}.Tests"); + } + + private async Task AddProjectsUnderDirectoryToSolutionFile( + string slnFile, + string directory, + string slnTargetFolder) + { + var projects = Directory.GetFiles(directory, "*.csproj", SearchOption.AllDirectories); + + foreach (var project in projects) + { + await _dotnetSlnFileModifierService.AddProjectAsync(slnFile, project, slnTargetFolder); + } + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Xml/XmlFileManagerBase.cs b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Xml/XmlFileManagerBase.cs new file mode 100644 index 0000000000..74eb5379c2 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.CommonServices/Volo/Abp/Studio/Xml/XmlFileManagerBase.cs @@ -0,0 +1,51 @@ +using System; +using System.IO; +using System.IO.Abstractions; +using System.Threading.Tasks; +using System.Xml; +using System.Xml.Linq; +using Volo.Abp.Threading; + +namespace Volo.Abp.Studio.Xml +{ + public abstract class XmlFileManagerBase + { + public IFileSystem FileSystem { get; set; } + + public ICancellationTokenProvider CancellationTokenProvider { get; set; } + + protected async Task GetXmlDocumentAsync(string filePath) + { + try + { + var doc = new XmlDocument() { PreserveWhitespace = true }; + doc.Load(GenerateStreamFromString(await FileSystem.File.ReadAllTextAsync(filePath))); + return doc; + } + catch (Exception ex) + { + throw new AbpException($"Error while reading {filePath} as XML document.", innerException: ex); + } + } + + protected async Task SaveXmlDocumentAsync(string filePath, XmlDocument rootNode) + { + await SaveFileContentAsync(filePath, XDocument.Parse(rootNode.OuterXml).ToString()); + } + + protected async Task SaveFileContentAsync(string filePath, string content) + { + await FileSystem.File.WriteAllTextAsync(filePath, content, CancellationTokenProvider.Token); + } + + private MemoryStream GenerateStreamFromString(string s) + { + var stream = new MemoryStream(); + var writer = new StreamWriter(stream); + writer.Write(s); + writer.Flush(); + stream.Position = 0; + return stream; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.Shared/Volo.Abp.Studio.Domain.Shared.csproj b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo.Abp.Studio.Domain.Shared.csproj new file mode 100644 index 0000000000..62daa81f1a --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo.Abp.Studio.Domain.Shared.csproj @@ -0,0 +1,15 @@ + + + + + + netstandard2.0 + + + + + + + + + diff --git a/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/AbpStudioDomainSharedModule.cs b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/AbpStudioDomainSharedModule.cs new file mode 100644 index 0000000000..9693bc2577 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/AbpStudioDomainSharedModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.Cli; +using Volo.Abp.Modularity; + +namespace Volo.Abp.Studio +{ + [DependsOn( + typeof(AbpCliCoreModule) + )] + public class AbpStudioDomainSharedModule : AbpModule + { + + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/AbpStudioErrorCodes.cs b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/AbpStudioErrorCodes.cs new file mode 100644 index 0000000000..32bc670c6e --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/AbpStudioErrorCodes.cs @@ -0,0 +1,32 @@ +namespace Volo.Abp.Studio +{ + public static class AbpStudioErrorCodes + { + public const string SolutionAlreadyExists = "AbpStudio:SolutionAlreadyExists"; + public const string ModuleAlreadyExistsInTheSolution = "AbpStudio:ModuleAlreadyExistsInTheSolution"; + public const string ModuleFileAlreadyExists = "AbpStudio:ModuleFileAlreadyExists"; + public const string IncorrectFileFormat = "AbpStudio:IncorrectFileFormat"; + public const string ModuleNotFound = "AbpStudio:ModuleNotFound"; + public const string SolutionNotFound = "AbpStudio:SolutionNotFound"; + public const string ModuleNotSpecified = "AbpStudio:ModuleNotSpecified"; + public const string SolutionNotSpecified = "AbpStudio:SolutionNotSpecified"; + public const string ProjectAlreadyExistInTheModule = "AbpStudio:ProjectAlreadyExistInTheModule"; + public const string IncorrectSolutionFileFormat = "AbpStudio:IncorrectSolutionFileFormat"; + public const string FolderNotFound = "AbpStudio:FolderNotFound"; + public const string ProjectWithSameNameAlreadyExistInTheSolutionFile = "AbpStudio:ProjectWithSameNameAlreadyExistInTheSolutionFile"; + public const string UndefinedPackageTemplate = "AbpStudio:UndefinedPackageTemplate"; + public const string PackageTemplateNotSpecified = "AbpStudio:PackageTemplateNotSpecified"; + public const string PackageNameMustBeSpecified = "AbpStudio:PackageNameMustBeSpecified"; + public const string FileAlreadyExists = "AbpStudio:FileAlreadyExists"; + public const string PackageNotSpecified = "AbpStudio:PackageNotSpecified"; + public const string DbmsMustBeSpecified = "AbpStudio:DbmsMustBeSpecified"; + public const string UserNotLoggedIn = "AbpStudio:UserNotLoggedIn"; + public const string PackageAlreadyExist = "AbpStudio:PackageAlreadyExist"; + public const string AbpModuleFileNotFound = "AbpStudio:AbpModuleFileNotFound"; + public const string DllNotFound = "AbpStudio:DllNotFound"; + public const string PackageNotFound = "AbpStudio:PackageNotFound"; + public const string FileNotFound = "AbpStudio:FileNotFound"; + public const string IncorrectFolderName = "AbpStudio:IncorrectFolderName"; + public const string ModuleAlreadyInstalled = "AbpStudio:ModuleAlreadyInstalled"; + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/Modules/ModuleConsts.cs b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/Modules/ModuleConsts.cs new file mode 100644 index 0000000000..b2c9733720 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/Modules/ModuleConsts.cs @@ -0,0 +1,18 @@ +namespace Volo.Abp.Studio.Modules +{ + public static class ModuleConsts + { + public const string FileExtension = ".abpmdl.json"; + public const string InstallerPackagePostfix = ".Installer"; + public const string SourceCorePackagePostfix = ".SourceCode"; + public const string Packages = "packages"; + + public static class Layers //TODO: Moving to PackageTypes + { + public const string Domain = "lib.domain"; + public const string DomainShared = "lib.domain.shared"; + public const string Application = "lib.application"; + public const string ApplicationContracts = "lib.application.contracts"; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/Package/PackageReferenceCompatibility.cs b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/Package/PackageReferenceCompatibility.cs new file mode 100644 index 0000000000..70c51c36e2 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.Domain.Shared/Volo/Abp/Studio/Package/PackageReferenceCompatibility.cs @@ -0,0 +1,13 @@ +namespace Volo.Abp.Studio.Packages.Referencing +{ + public enum PackageReferenceCompatibility + { + Unknown, + DDD_Compatible, + Compatible, + TestProject, + IndirectlyReferenced, + DirectlyReferenced, + CircularReference + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo.Abp.Studio.ModuleInstaller.Abstractions.csproj b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo.Abp.Studio.ModuleInstaller.Abstractions.csproj new file mode 100644 index 0000000000..8076b60746 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo.Abp.Studio.ModuleInstaller.Abstractions.csproj @@ -0,0 +1,15 @@ + + + + + + netstandard2.0 + + + + + + + + + diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/AbpStudioModuleInstallerAbstractionsModule.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/AbpStudioModuleInstallerAbstractionsModule.cs new file mode 100644 index 0000000000..c9e68ec940 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/AbpStudioModuleInstallerAbstractionsModule.cs @@ -0,0 +1,13 @@ +using Volo.Abp.Modularity; +using Volo.Abp.Studio.Analyzing; + +namespace Volo.Abp.Studio +{ + [DependsOn( + typeof(AbpStudioAnalyzingAbstractionsModule) + )] + public class AbpStudioModuleInstallerAbstractionsModule : AbpModule + { + + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Analyzing/AnalyzingOptions.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Analyzing/AnalyzingOptions.cs new file mode 100644 index 0000000000..7296dfce74 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Analyzing/AnalyzingOptions.cs @@ -0,0 +1,45 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Analyzing +{ + public class AnalyzingOptions + { + public bool Force { get; set; } = false; + + [CanBeNull] + public string AnalyzeConfigurationFile { get; set; } + + [CanBeNull] + public string SettingNamePrefix { get; set; } + + [CanBeNull] + public string FeatureNamePrefix { get; set; } + + // Combines two options + // The second option has more priority + public static AnalyzingOptions Combine([CanBeNull] AnalyzingOptions first, [CanBeNull] AnalyzingOptions second) + { + if (second == null && first == null) + { + return new AnalyzingOptions(); + } + + if (second == null) + { + return first; + } + + if (first == null) + { + return second; + } + + return new AnalyzingOptions + { + AnalyzeConfigurationFile = second.AnalyzeConfigurationFile ?? first.AnalyzeConfigurationFile, + SettingNamePrefix = second.SettingNamePrefix ?? first.SettingNamePrefix, + FeatureNamePrefix = second.FeatureNamePrefix ?? first.FeatureNamePrefix + }; + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/EfCoreConfigurationMethodDeclaration.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/EfCoreConfigurationMethodDeclaration.cs new file mode 100644 index 0000000000..5b69a49cbd --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/EfCoreConfigurationMethodDeclaration.cs @@ -0,0 +1,18 @@ +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.ModuleInstalling +{ + public class EfCoreConfigurationMethodDeclaration + { + public string Namespace { get; } + + public string MethodName { get; } + + public EfCoreConfigurationMethodDeclaration([NotNull] string nameSpace, [NotNull] string methodName) + { + Namespace = Check.NotNullOrEmpty(nameSpace, nameof(nameSpace)); + MethodName = Check.NotNullOrEmpty(methodName, nameof(methodName)); + } + + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/IModuleInstallingPipelineBuilder.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/IModuleInstallingPipelineBuilder.cs new file mode 100644 index 0000000000..1112328675 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/IModuleInstallingPipelineBuilder.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.ModuleInstalling +{ + public interface IModuleInstallingPipelineBuilder + { + Task BuildAsync(ModuleInstallingContext context); + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingContext.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingContext.cs new file mode 100644 index 0000000000..350359c551 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingContext.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.IO; +using JetBrains.Annotations; +using Volo.Abp.Studio.Packages; + +namespace Volo.Abp.Studio.ModuleInstalling +{ + public class ModuleInstallingContext + { + public string ModuleName { get; set; } + + public string TargetModule { get; set; } + + public bool WithSourceCode { get; set; } + + public bool AddToSolutionFile { get; set; } + + public string Version { get; set; } + + public List EfCoreConfigurationMethodDeclarations { get; } + + public List TargetModulePackages { get; protected set; } + + public List ReferenceModulePackages { get; protected set; } + + public Dictionary Options { get; } + + public IServiceProvider ServiceProvider { get; } + + public ModuleInstallingContext( + string moduleName, + string targetModule, + bool withSourceCode, + bool addToSolutionFile, + string version, + Dictionary options, + IServiceProvider serviceProvider) + { + ModuleName = moduleName; + TargetModule = targetModule; + WithSourceCode = withSourceCode; + AddToSolutionFile = addToSolutionFile; + Version = version; + Options = options; + + TargetModulePackages = new List(); + ReferenceModulePackages = new List(); + + EfCoreConfigurationMethodDeclarations = new List(); + + ServiceProvider = Check.NotNull(serviceProvider, nameof(serviceProvider)); + } + + public void AddEfCoreConfigurationMethodDeclaration(params EfCoreConfigurationMethodDeclaration[] methodNames) + { + foreach (var methodName in methodNames) + { + Check.NotNull(methodName, nameof(methodName)); + + EfCoreConfigurationMethodDeclarations.Add(methodName); + } + } + + public void SetReferenceModulePackages([NotNull] List referenceModulePackages) + { + Check.NotNull(referenceModulePackages, nameof(referenceModulePackages)); + + ReferenceModulePackages = referenceModulePackages; + } + + public void SetTargetModulePackages([NotNull] List targetModulePackages) + { + Check.NotNull(targetModulePackages, nameof(targetModulePackages)); + + TargetModulePackages = targetModulePackages; + } + + public string GetTargetSourceCodeFolder() + { + return CalculateTargetSourceCodeFolder(TargetModule, ModuleName); + } + + public static string CalculateTargetSourceCodeFolder(string targetModule, string moduleName) + { + return Path.Combine(Path.GetDirectoryName(targetModule), "modules", moduleName); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipeline.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipeline.cs new file mode 100644 index 0000000000..4582a4ac8b --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipeline.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.ModuleInstalling +{ + public class ModuleInstallingPipeline + { + public ModuleInstallingContext Context { get; } + + public List Steps { get; } + + public ModuleInstallingPipeline(ModuleInstallingContext context) + { + Context = context; + Steps = new List(); + } + + public async Task ExecuteAsync() + { + foreach (var step in Steps) + { + await step.ExecuteAsync(Context); + } + } + + public void Add(ModuleInstallingPipelineStep step) + { + Steps.Add(step); + } + + public void Remove(Type stepType) + { + Steps.RemoveAll(step => step.GetType() == stepType); + } + + public void Replace(Type stepType, ModuleInstallingPipelineStep step) + { + Steps.ReplaceOne(step => step.GetType() == stepType , step); + } + + public void InsertAfter(Type stepType, ModuleInstallingPipelineStep step) + { + Steps.InsertAfter(step => step.GetType() == stepType , step); + } + + public void InsertBefore(Type stepType, ModuleInstallingPipelineStep step) + { + Steps.InsertBefore(step => step.GetType() == stepType , step); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineStep.cs new file mode 100644 index 0000000000..b98d32b32a --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineStep.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.ModuleInstalling +{ + public abstract class ModuleInstallingPipelineStep + { + public abstract Task ExecuteAsync(ModuleInstallingContext context); + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/IModuleInstallingOptionProvider.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/IModuleInstallingOptionProvider.cs new file mode 100644 index 0000000000..ac557d5a51 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/IModuleInstallingOptionProvider.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Volo.Abp.Studio.ModuleInstalling.Options +{ + public interface IModuleInstallingOptionProvider + { + Task> GetAsync(); + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/ModuleInstallingOption.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/ModuleInstallingOption.cs new file mode 100644 index 0000000000..f8725e1e93 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/ModuleInstallingOption.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.ModuleInstalling.Options +{ + public class ModuleInstallingOption + { + public string Name { get; set; } + + public string Description { get; set; } + + public ModuleInstallingOptionType Type { get; set; } + + public Dictionary Values { get; set; } + + public ModuleInstallingOption( + [NotNull] string name, + [NotNull] string description, + [NotNull] ModuleInstallingOptionType type, + [CanBeNull] Dictionary values = null) + { + Name = Check.NotNullOrWhiteSpace(name, nameof(name)); + Description = Check.NotNullOrWhiteSpace(description, nameof(description)); + Type = type; + Values = values ?? new Dictionary(); + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/ModuleInstallingOptionType.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/ModuleInstallingOptionType.cs new file mode 100644 index 0000000000..140b1339df --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/ModuleInstalling/Options/ModuleInstallingOptionType.cs @@ -0,0 +1,10 @@ +namespace Volo.Abp.Studio.ModuleInstalling.Options +{ + public enum ModuleInstallingOptionType + { + NotSpecified, + Checkbox, + FreeText, + ComboBox + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageConsts.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageConsts.cs new file mode 100644 index 0000000000..05a7abb16e --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageConsts.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.Studio.Packages +{ + public static class PackageConsts + { + public const string FileExtension = ".abppkg.json"; + + public const string RoleProperty = "role"; + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageHelper.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageHelper.cs new file mode 100644 index 0000000000..daae8d2f77 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageHelper.cs @@ -0,0 +1,18 @@ +using System; +using System.IO; +using JetBrains.Annotations; + +namespace Volo.Abp.Studio.Packages +{ + public static class PackageHelper + { + public static string GetNameFromPath([NotNull] string path) + { + Check.NotNullOrWhiteSpace(path, nameof(path)); + + return Path + .GetFileName(path) + .RemovePostFix(StringComparison.OrdinalIgnoreCase, PackageConsts.FileExtension); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfo.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfo.cs new file mode 100644 index 0000000000..0a6e939ded --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfo.cs @@ -0,0 +1,27 @@ +using JetBrains.Annotations; +using Volo.Abp.Studio.Analyzing; + +namespace Volo.Abp.Studio.Packages +{ + public class PackageInfo + { + [NotNull] + public string Path { get; } + + [NotNull] + public string Name { get; } + + [CanBeNull] + public string Role { get; } + + [CanBeNull] + public AnalyzingOptions AnalyzingOptions { get; set; } + + public PackageInfo([NotNull] string path, [CanBeNull] string role) + { + Path = Check.NotNullOrWhiteSpace(path, nameof(path)); + Name = PackageHelper.GetNameFromPath(path); + Role = role; + } + } +} \ No newline at end of file diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs new file mode 100644 index 0000000000..efb7950fc2 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller.Abstractions/Volo/Abp/Studio/Package/PackageInfoWithAnalyze.cs @@ -0,0 +1,28 @@ +using JetBrains.Annotations; +using Volo.Abp.Studio.Analyzing.Models; + +namespace Volo.Abp.Studio.Packages +{ + public class PackageInfoWithAnalyze + { + [NotNull] + public string Path { get; } + + [NotNull] + public string Name { get; } + + [CanBeNull] + public string Role { get; } + + [NotNull] + public PackageModel Analyze { get; } + + public PackageInfoWithAnalyze([NotNull] string path, [CanBeNull] string role, [NotNull] PackageModel analyze) + { + Path = Check.NotNullOrWhiteSpace(path, nameof(path)); + Name = PackageHelper.GetNameFromPath(path); + Role = role; + Analyze = Check.NotNull(analyze, nameof(analyze)); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo.Abp.Studio.ModuleInstaller.csproj b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo.Abp.Studio.ModuleInstaller.csproj new file mode 100644 index 0000000000..2d3577e20f --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo.Abp.Studio.ModuleInstaller.csproj @@ -0,0 +1,16 @@ + + + + + + net5.0 + true + + + + + + + + + diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/AbpStudioModuleInstallerModule.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/AbpStudioModuleInstallerModule.cs new file mode 100644 index 0000000000..3450ab8a5c --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/AbpStudioModuleInstallerModule.cs @@ -0,0 +1,16 @@ +using Volo.Abp.Modularity; + +namespace Volo.Abp.Studio +{ + [DependsOn( + typeof(AbpStudioDomainCommonServicesModule), + typeof(AbpStudioModuleInstallerAbstractionsModule) + )] + public class AbpStudioModuleInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs new file mode 100644 index 0000000000..ba78031686 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/ModuleInstallingPipelineBuilderBase.cs @@ -0,0 +1,32 @@ +using System.Linq; +using Volo.Abp.Studio.ModuleInstalling.Steps; + +namespace Volo.Abp.Studio.ModuleInstalling +{ + public abstract class ModuleInstallingPipelineBuilderBase + { + protected ModuleInstallingPipeline GetBasePipeline(ModuleInstallingContext context) + { + var pipeline = new ModuleInstallingPipeline(context); + + if (context.WithSourceCode) + { + pipeline.Add(new SourceCodeDownloadStep()); + + if (context.AddToSolutionFile) + { + pipeline.Add(new AddToSolutionFileStep()); + } + } + + pipeline.Add(new PackageReferencingStep()); + + if (context.EfCoreConfigurationMethodDeclarations.Any()) + { + pipeline.Add(new AddEfCoreConfigurationMethodStep()); + } + + return pipeline; + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddEfCoreConfigurationMethodStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddEfCoreConfigurationMethodStep.cs new file mode 100644 index 0000000000..54d6ec2cee --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddEfCoreConfigurationMethodStep.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Cli.ProjectModification; +using Volo.Abp.Studio.Packages; +using Volo.Abp.Studio.Packages.Modifying; +using Volo.Abp.Studio.Analyzing.Models.Module; + +namespace Volo.Abp.Studio.ModuleInstalling.Steps +{ + public class AddEfCoreConfigurationMethodStep : ModuleInstallingPipelineStep + { + public override async Task ExecuteAsync(ModuleInstallingContext context) + { + var efCoreProject = context.TargetModulePackages.FirstOrDefault(p => p.Role == PackageTypes.EntityFrameworkCore); + + if (efCoreProject == null) + { + return; + } + + var efCoreProjectCsprojPath = efCoreProject.Path.RemovePostFix(PackageConsts.FileExtension) + ".csproj"; + + var _derivedClassFinder = context.ServiceProvider.GetRequiredService(); + var _dbContextFileBuilderConfigureAdder = context.ServiceProvider.GetRequiredService(); + + var dbContextFile = _derivedClassFinder.Find(efCoreProjectCsprojPath, "AbpDbContext").FirstOrDefault(); + + if (dbContextFile == null) + { + return; + } + + foreach (var declaration in context.EfCoreConfigurationMethodDeclarations) + { + _dbContextFileBuilderConfigureAdder.Add(dbContextFile, declaration.Namespace + ":" + declaration.MethodName); + } + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs new file mode 100644 index 0000000000..2739a62eaf --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/AddToSolutionFileStep.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Studio.Solution; + +namespace Volo.Abp.Studio.ModuleInstalling.Steps +{ + public class AddToSolutionFileStep : ModuleInstallingPipelineStep + { + public override async Task ExecuteAsync(ModuleInstallingContext context) + { + var _solutionFileModuleAdder = context.ServiceProvider.GetRequiredService(); + + await _solutionFileModuleAdder.AddAsync(context.TargetModule, context.ModuleName); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs new file mode 100644 index 0000000000..bec9da5a1b --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/PackageReferencingStep.cs @@ -0,0 +1,102 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Studio.Packages; +using Volo.Abp.Studio.Packages.Modifying; +using Volo.Abp.Studio.Analyzing.Models.Module; + +namespace Volo.Abp.Studio.ModuleInstalling.Steps +{ + public class PackageReferencingStep : ModuleInstallingPipelineStep + { + public override async Task ExecuteAsync(ModuleInstallingContext context) + { + var _abpModuleFileManager = context.ServiceProvider.GetRequiredService(); + + foreach (var referencePackage in context.ReferenceModulePackages) + { + var targetPackages = GetTargetPackages(context.TargetModulePackages, referencePackage); + + foreach (var targetPackage in targetPackages) + { + await AddReferenceAsync(context, targetPackage, referencePackage); + + var targetAbpModulePath = FindAbpModuleFile(targetPackage.Path); + + await _abpModuleFileManager.AddDependency(targetAbpModulePath, FindAbpModuleName(referencePackage)); + } + } + } + + private async Task AddReferenceAsync( + ModuleInstallingContext context, + PackageInfo targetPackage, + PackageInfoWithAnalyze referencePackage) + { + var _csprojFileManager = context.ServiceProvider.GetRequiredService(); + var csprojFilePath = targetPackage.Path.RemovePostFix(PackageConsts.FileExtension) + ".csproj"; + + if (context.WithSourceCode) + { + var referenceProjectPath = Directory.GetFiles(context.GetTargetSourceCodeFolder(), + $"*{referencePackage.Name}.csproj", + SearchOption.AllDirectories).FirstOrDefault(); + + if (referenceProjectPath == null) + { + return; + } + + await _csprojFileManager.AddProjectReferenceAsync( + csprojFilePath, + referenceProjectPath); + } + else + { + await _csprojFileManager.AddPackageReferenceAsync( + csprojFilePath, + referencePackage.Name, + context.Version); + } + } + + private string FindAbpModuleFile(string targetPackagePath) + { + return Directory.GetFiles(Path.GetDirectoryName(targetPackagePath), "*Module.cs", + SearchOption.AllDirectories) + .FirstOrDefault(); + } + + private string FindAbpModuleName(PackageInfoWithAnalyze package) + { + var abpModuleModel = package.Analyze.Contents.Where(y => + y.ContentType == AbpModuleModel.ContentTypeName + ).Cast().First(); + + return abpModuleModel.Namespace + "." + abpModuleModel.Name; + } + + private List GetTargetPackages(List targetModulePackages, + PackageInfoWithAnalyze referencePackage) + { + if (PackageTypes.IsHostProject(referencePackage.Role)) + { + return new List(); + } + + if (PackageTypes.IsUiProject(referencePackage.Role)) + { + var useHostBlazorServerForMvcPackages = targetModulePackages.All(p => p.Role != PackageTypes.HostMvc); + var targetHostType = + PackageTypes.GetHostTypeOfUi(referencePackage.Role, useHostBlazorServerForMvcPackages); + + return targetModulePackages.Where(p => p.Role == targetHostType).ToList(); + } + + return targetModulePackages.Where(p => p.Role == referencePackage.Role).ToList(); + } + } +} diff --git a/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/SourceCodeDownloadStep.cs b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/SourceCodeDownloadStep.cs new file mode 100644 index 0000000000..f99186d216 --- /dev/null +++ b/studio/src/Volo.Abp.Studio.ModuleInstaller/Volo/Abp/Studio/ModuleInstalling/Steps/SourceCodeDownloadStep.cs @@ -0,0 +1,39 @@ +using System; +using System.IO; +using System.IO.Compression; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Cli.ProjectBuilding; +using Volo.Abp.Studio.Nuget; + +namespace Volo.Abp.Studio.ModuleInstalling.Steps +{ + public class SourceCodeDownloadStep : ModuleInstallingPipelineStep + { + public override async Task ExecuteAsync(ModuleInstallingContext context) + { + var _nugetSourceCodeStoreManager = context.ServiceProvider.GetRequiredService(); + + var zipFilePath = await _nugetSourceCodeStoreManager.GetCachedSourceCodeFilePathAsync( + context.ModuleName, + SourceCodeTypes.Module, + context.Version); + + if (zipFilePath == null) + { + throw new AbpStudioException(message: $"Source code not found for {context.ModuleName} (v{context.Version})"); + } + + var targetFolder = context.GetTargetSourceCodeFolder(); + + if (Directory.Exists(targetFolder)) + { + return; + } + + Directory.CreateDirectory(targetFolder); + + ZipFile.ExtractToDirectory(zipFilePath, targetFolder); + } + } +} diff --git a/templates/app/angular/package.json b/templates/app/angular/package.json index 706362b81e..3dd71d659e 100644 --- a/templates/app/angular/package.json +++ b/templates/app/angular/package.json @@ -12,14 +12,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~5.0.0-beta.1", - "@abp/ng.components": "~5.0.0-beta.1", - "@abp/ng.core": "~5.0.0-beta.1", - "@abp/ng.identity": "~5.0.0-beta.1", - "@abp/ng.setting-management": "~5.0.0-beta.1", - "@abp/ng.tenant-management": "~5.0.0-beta.1", - "@abp/ng.theme.basic": "~5.0.0-beta.1", - "@abp/ng.theme.shared": "~5.0.0-beta.1", + "@abp/ng.account": "~5.0.0-beta.2", + "@abp/ng.components": "~5.0.0-beta.2", + "@abp/ng.core": "~5.0.0-beta.2", + "@abp/ng.identity": "~5.0.0-beta.2", + "@abp/ng.setting-management": "~5.0.0-beta.2", + "@abp/ng.tenant-management": "~5.0.0-beta.2", + "@abp/ng.theme.basic": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "@angular/animations": "~12.2.6", "@angular/common": "~12.2.6", "@angular/compiler": "~12.2.6", @@ -34,7 +34,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~5.0.0-beta.1", + "@abp/ng.schematics": "~5.0.0-beta.2", "@angular-devkit/build-angular": "~12.2.6", "@angular-eslint/builder": "~12.5.0", "@angular-eslint/eslint-plugin": "~12.5.0", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs index 22a1b3aff8..bf5063ab8c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server.Tiered/MyProjectNameBlazorModule.cs @@ -98,7 +98,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered ConfigureBlazorise(context); ConfigureRouter(context); ConfigureMenu(configuration); - ConfigureRedis(context, configuration, hostingEnvironment); + ConfigureDataProtection(context, configuration, hostingEnvironment); ConfigureSwaggerServices(context.Services); } @@ -109,7 +109,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; }); } - + private void ConfigureCache() { Configure(options => @@ -143,7 +143,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered ); }); } - + private void ConfigureMultiTenancy() { Configure(options => @@ -253,7 +253,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered { options.MenuContributors.Add(new MyProjectNameMenuContributor(configuration)); }); - + Configure(options => { options.Contributors.Add(new MyProjectNameToolbarContributor()); @@ -275,7 +275,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered options.AddMaps(); }); } - + private void ConfigureSwaggerServices(IServiceCollection services) { services.AddAbpSwaggerGen( @@ -288,17 +288,16 @@ namespace MyCompanyName.MyProjectName.Blazor.Server.Tiered ); } - private void ConfigureRedis( + private void ConfigureDataProtection( ServiceConfigurationContext context, IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } } 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 f84bada2b0..348e566c64 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.0.0-beta.1", - "@abp/aspnetcore.components.server.basictheme": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/aspnetcore.components.server.basictheme": "^5.0.0-beta.2" } } 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 f84bada2b0..348e566c64 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.0.0-beta.1", - "@abp/aspnetcore.components.server.basictheme": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/aspnetcore.components.server.basictheme": "^5.0.0-beta.2" } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index 9861a1becd..2f1f08fc09 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -51,7 +51,7 @@ namespace MyCompanyName.MyProjectName ConfigureLocalization(); ConfigureCache(configuration); ConfigureVirtualFileSystem(context); - ConfigureRedis(context, configuration, hostingEnvironment); + ConfigureDataProtection(context, configuration, hostingEnvironment); ConfigureCors(context, configuration); ConfigureSwaggerServices(context, configuration); } @@ -145,17 +145,16 @@ namespace MyCompanyName.MyProjectName }); } - private void ConfigureRedis( + private void ConfigureDataProtection( ServiceConfigurationContext context, IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } } 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 c0cac3c1ac..0b39047afd 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.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index 59e081d10f..55b5758720 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -133,12 +133,11 @@ namespace MyCompanyName.MyProjectName options.KeyPrefix = "MyProjectName:"; }); + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } context.Services.AddCors(options => diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json index 480eda973b..a46121a17c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs index 635907da3a..206e47abd9 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs @@ -81,7 +81,7 @@ namespace MyCompanyName.MyProjectName.Web ConfigureBundles(); ConfigureCache(); - ConfigureRedis(context, configuration, hostingEnvironment); + ConfigureDataProtection(context, configuration, hostingEnvironment); ConfigureUrls(configuration); ConfigureAuthentication(context, configuration); ConfigureAutoMapper(); @@ -214,17 +214,16 @@ namespace MyCompanyName.MyProjectName.Web ); } - private void ConfigureRedis( + private void ConfigureDataProtection( ServiceConfigurationContext context, IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } } 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 c0cac3c1ac..0b39047afd 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.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file 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 c0cac3c1ac..0b39047afd 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.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs index b149e4503e..59c2582c3d 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs @@ -1,7 +1,7 @@ using System; using System.Threading.Tasks; +using Volo.Abp.Account; using Volo.Abp.DependencyInjection; -using Volo.Abp.Identity; namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp { diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs index d16fb65f9e..422f86abb1 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs @@ -21,6 +21,7 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp using (var application = AbpApplicationFactory.Create(options => { options.Services.ReplaceConfiguration(_configuration); + options.UseAutofac(); })) { application.Initialize(); diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index 366daa4117..a992642ac1 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -16,6 +16,7 @@ + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs index 854cb49d36..0370c686d3 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs @@ -1,6 +1,7 @@ using System; using Microsoft.Extensions.DependencyInjection; using Polly; +using Volo.Abp.Autofac; using Volo.Abp.Http.Client; using Volo.Abp.Http.Client.IdentityModel; using Volo.Abp.Modularity; @@ -8,6 +9,7 @@ using Volo.Abp.Modularity; namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp { [DependsOn( + typeof(AbpAutofacModule), typeof(MyProjectNameHttpApiClientModule), typeof(AbpHttpClientIdentityModelModule) )] diff --git a/templates/module/angular/package.json b/templates/module/angular/package.json index 0e25a0cb36..a651eba456 100644 --- a/templates/module/angular/package.json +++ b/templates/module/angular/package.json @@ -15,14 +15,14 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~5.0.0-beta.1", - "@abp/ng.components": "~5.0.0-beta.1", - "@abp/ng.core": "~5.0.0-beta.1", - "@abp/ng.identity": "~5.0.0-beta.1", - "@abp/ng.setting-management": "~5.0.0-beta.1", - "@abp/ng.tenant-management": "~5.0.0-beta.1", - "@abp/ng.theme.basic": "~5.0.0-beta.1", - "@abp/ng.theme.shared": "~5.0.0-beta.1", + "@abp/ng.account": "~5.0.0-beta.2", + "@abp/ng.components": "~5.0.0-beta.2", + "@abp/ng.core": "~5.0.0-beta.2", + "@abp/ng.identity": "~5.0.0-beta.2", + "@abp/ng.setting-management": "~5.0.0-beta.2", + "@abp/ng.tenant-management": "~5.0.0-beta.2", + "@abp/ng.theme.basic": "~5.0.0-beta.2", + "@abp/ng.theme.shared": "~5.0.0-beta.2", "@angular/animations": "~12.2.6", "@angular/common": "~12.2.6", "@angular/compiler": "~12.2.6", @@ -37,7 +37,7 @@ "zone.js": "~0.11.4" }, "devDependencies": { - "@abp/ng.schematics": "~5.0.0-beta.1", + "@abp/ng.schematics": "~5.0.0-beta.2", "@angular-devkit/build-angular": "~12.2.6", "@angular-eslint/builder": "~12.5.0", "@angular-eslint/eslint-plugin": "~12.5.0", diff --git a/templates/module/angular/projects/my-project-name/package.json b/templates/module/angular/projects/my-project-name/package.json index 72e964645a..5e527d1099 100644 --- a/templates/module/angular/projects/my-project-name/package.json +++ b/templates/module/angular/projects/my-project-name/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": ">=9", "@angular/core": ">=9", - "@abp/ng.core": ">=5.0.0-beta.1", - "@abp/ng.theme.shared": ">=5.0.0-beta.1" + "@abp/ng.core": ">=5.0.0-beta.2", + "@abp/ng.theme.shared": ">=5.0.0-beta.2" }, "dependencies": { "tslib": "^2.1.0" diff --git a/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json b/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json new file mode 100644 index 0000000000..da22f33234 --- /dev/null +++ b/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpmdl.json @@ -0,0 +1,111 @@ +{ + "folders": { + "items": { + "src": {}, + "test": {}, + "host": {} + } + }, + "packages": { + "MyCompanyName.MyProjectName.Domain.Shared": { + "path": "src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.Domain": { + "path": "src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.Application.Contracts": { + "path": "src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.Application": { + "path": "src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.EntityFrameworkCore": { + "path": "src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.MongoDB": { + "path": "src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.HttpApi": { + "path": "src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.HttpApi.Client": { + "path": "src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.TestBase": { + "path": "test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.abppkg.json", + "folder": "test" + }, + "MyCompanyName.MyProjectName.EntityFrameworkCore.Tests": { + "path": "test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.abppkg.json", + "folder": "test" + }, + "MyCompanyName.MyProjectName.MongoDB.Tests": { + "path": "test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.abppkg.json", + "folder": "test" + }, + "MyCompanyName.MyProjectName.Domain.Tests": { + "path": "test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.abppkg.json", + "folder": "test" + }, + "MyCompanyName.MyProjectName.Application.Tests": { + "path": "test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.abppkg.json", + "folder": "test" + }, + "MyCompanyName.MyProjectName.HttpApi.Host": { + "path": "host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.abppkg.json", + "folder": "host" + }, + "MyCompanyName.MyProjectName.Web": { + "path": "src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp": { + "path": "test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.abppkg.json", + "folder": "test" + }, + "MyCompanyName.MyProjectName.Web.Host": { + "path": "host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.abppkg.json", + "folder": "host" + }, + "MyCompanyName.MyProjectName.IdentityServer": { + "path": "host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json", + "folder": "host" + }, + "MyCompanyName.MyProjectName.Host.Shared": { + "path": "host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.abppkg.json", + "folder": "host" + }, + "MyCompanyName.MyProjectName.Web.Unified": { + "path": "host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.abppkg.json", + "folder": "host" + }, + "MyCompanyName.MyProjectName.Blazor": { + "path": "src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.Blazor.Host": { + "path": "host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.abppkg.json", + "folder": "host" + }, + "MyCompanyName.MyProjectName.Blazor.Server": { + "path": "src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.Blazor.WebAssembly": { + "path": "src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.abppkg.json", + "folder": "src" + }, + "MyCompanyName.MyProjectName.Blazor.Server.Host": { + "path": "host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.abppkg.json", + "folder": "host" + } + } +} \ No newline at end of file diff --git a/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpsln.json b/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpsln.json new file mode 100644 index 0000000000..3273040f28 --- /dev/null +++ b/templates/module/aspnet-core/MyCompanyName.MyProjectName.abpsln.json @@ -0,0 +1,7 @@ +{ + "modules": { + "MyCompanyName.MyProjectName": { + "path": "MyCompanyName.MyProjectName.abpmdl.json" + } + } +} \ No newline at end of file diff --git a/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln b/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln index ca958e6f89..6541e3d020 100644 --- a/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln +++ b/templates/module/aspnet-core/MyCompanyName.MyProjectName.sln @@ -59,6 +59,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Blazor.Server.Host", "host\MyCompanyName.MyProjectName.Blazor.Server.Host\MyCompanyName.MyProjectName.Blazor.Server.Host.csproj", "{FEA752A1-5B4E-49E9-B1F3-DDC25E41BB52}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Installer", "src\MyCompanyName.MyProjectName.Installer\MyCompanyName.MyProjectName.Installer.csproj", "{BE39FD00-745B-4049-8161-FC129817CBE4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -165,6 +167,10 @@ Global {FEA752A1-5B4E-49E9-B1F3-DDC25E41BB52}.Debug|Any CPU.Build.0 = Debug|Any CPU {FEA752A1-5B4E-49E9-B1F3-DDC25E41BB52}.Release|Any CPU.ActiveCfg = Release|Any CPU {FEA752A1-5B4E-49E9-B1F3-DDC25E41BB52}.Release|Any CPU.Build.0 = Release|Any CPU + {BE39FD00-745B-4049-8161-FC129817CBE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE39FD00-745B-4049-8161-FC129817CBE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE39FD00-745B-4049-8161-FC129817CBE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE39FD00-745B-4049-8161-FC129817CBE4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -195,6 +201,7 @@ Global {299BE52E-823F-408E-9C6D-7E2F81BA34FF} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} {F0EE5760-262D-456A-AA7C-E84F484A05F6} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} {FEA752A1-5B4E-49E9-B1F3-DDC25E41BB52} = {E400416D-2895-4512-9D17-90681EEC7E0A} + {BE39FD00-745B-4049-8161-FC129817CBE4} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.abppkg.json new file mode 100644 index 0000000000..7d929dcea4 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "host.blazor-wasm" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.abppkg.json new file mode 100644 index 0000000000..a3ceaf2b83 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/MyCompanyName.MyProjectName.Blazor.Server.Host.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "host.blazor-server" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json index f84bada2b0..348e566c64 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Server.Host/package.json @@ -3,7 +3,7 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1", - "@abp/aspnetcore.components.server.basictheme": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2", + "@abp/aspnetcore.components.server.basictheme": "^5.0.0-beta.2" } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Host.Shared/MyCompanyName.MyProjectName.Host.Shared.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.abppkg.json new file mode 100644 index 0000000000..35f3cbe53c --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "host.http-api" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs index 80b40a0cca..7095d5312b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs @@ -126,12 +126,11 @@ namespace MyCompanyName.MyProjectName options.KeyPrefix = "MyProjectName:"; }); + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } context.Services.AddCors(options => diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs index de70793f38..e3861bcb8b 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyProjectNameIdentityServerModule.cs @@ -153,12 +153,11 @@ namespace MyCompanyName.MyProjectName options.IsEnabled = MultiTenancyConsts.IsEnabled; }); + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } context.Services.AddCors(options => diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json index 480eda973b..a46121a17c 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.abppkg.json new file mode 100644 index 0000000000..48875c29cf --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "host.mvc" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs index 3ea5dfc03a..df87db8359 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebHostModule.cs @@ -100,7 +100,7 @@ namespace MyCompanyName.MyProjectName ConfigureVirtualFileSystem(hostingEnvironment); ConfigureSwaggerServices(context.Services); ConfigureMultiTenancy(); - ConfigureRedis(context, configuration, hostingEnvironment); + ConfigureDataProtection(context, configuration, hostingEnvironment); } private void ConfigureMenu(IConfiguration configuration) @@ -207,17 +207,16 @@ namespace MyCompanyName.MyProjectName ); } - private void ConfigureRedis( + private void ConfigureDataProtection( ServiceConfigurationContext context, IConfiguration configuration, IWebHostEnvironment hostingEnvironment) { + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("MyProjectName"); if (!hostingEnvironment.IsDevelopment()) { var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); - context.Services - .AddDataProtection() - .PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "MyProjectName-Protection-Keys"); } } diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json index c0cac3c1ac..0b39047afd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.abppkg.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json index c0cac3c1ac..0b39047afd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^5.0.0-beta.2" } } \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.abppkg.json new file mode 100644 index 0000000000..49032794e2 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyCompanyName.MyProjectName.Application.Contracts.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyProjectNameRemoteServiceConsts.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyProjectNameRemoteServiceConsts.cs index 73d9976bd8..fb08e10462 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyProjectNameRemoteServiceConsts.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application.Contracts/MyProjectNameRemoteServiceConsts.cs @@ -3,5 +3,7 @@ public class MyProjectNameRemoteServiceConsts { public const string RemoteServiceName = "MyProjectName"; + + public const string ModuleName = "myProjectName"; } } diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.abppkg.json new file mode 100644 index 0000000000..412567ac33 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Application/MyCompanyName.MyProjectName.Application.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.abppkg.json new file mode 100644 index 0000000000..ef40d81585 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor-server" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.abppkg.json new file mode 100644 index 0000000000..471ef5e067 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.WebAssembly/MyCompanyName.MyProjectName.Blazor.WebAssembly.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor-wasm" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.abppkg.json new file mode 100644 index 0000000000..19c29b7b8b --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.abppkg.json new file mode 100644 index 0000000000..8b3de05f76 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.domain-shared" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.abppkg.json new file mode 100644 index 0000000000..1d574efe45 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyCompanyName.MyProjectName.Domain.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.domain" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.abppkg.json new file mode 100644 index 0000000000..e1c64f0175 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.ef" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/MyProjectName-generate-proxy.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/MyProjectName-generate-proxy.json deleted file mode 100644 index 0c806b2f57..0000000000 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/MyProjectName-generate-proxy.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "modules": { - "MyProjectName": { - "rootPath": "MyProjectName", - "remoteServiceName": "MyProjectName", - "controllers": { - "MyCompanyName.MyProjectName.Samples.SampleController": { - "controllerName": "Sample", - "controllerGroupName": "Sample", - "type": "MyCompanyName.MyProjectName.Samples.SampleController", - "interfaces": [ - { - "type": "MyCompanyName.MyProjectName.Samples.ISampleAppService" - } - ], - "actions": { - "GetAsync": { - "uniqueName": "GetAsync", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/MyProjectName/sample", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "MyCompanyName.MyProjectName.Samples.SampleDto", - "typeSimple": "MyCompanyName.MyProjectName.Samples.SampleDto" - }, - "allowAnonymous": null, - "implementFrom": "MyCompanyName.MyProjectName.Samples.ISampleAppService" - }, - "GetAuthorizedAsync": { - "uniqueName": "GetAuthorizedAsync", - "name": "GetAuthorizedAsync", - "httpMethod": "GET", - "url": "api/MyProjectName/sample/authorized", - "supportedVersions": [], - "parametersOnMethod": [], - "parameters": [], - "returnValue": { - "type": "MyCompanyName.MyProjectName.Samples.SampleDto", - "typeSimple": "MyCompanyName.MyProjectName.Samples.SampleDto" - }, - "allowAnonymous": false, - "implementFrom": "MyCompanyName.MyProjectName.Samples.ISampleAppService" - } - } - } - } - } - }, - "types": {} -} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/SampleClientProxy.Generated.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/SampleClientProxy.Generated.cs deleted file mode 100644 index e73241ee35..0000000000 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/SampleClientProxy.Generated.cs +++ /dev/null @@ -1,28 +0,0 @@ -// This file is automatically generated by ABP framework to use MVC Controllers from CSharp -using System; -using System.Threading.Tasks; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Http.Client.ClientProxying; -using MyCompanyName.MyProjectName.Samples; - -// ReSharper disable once CheckNamespace -namespace MyCompanyName.MyProjectName.Samples.ClientProxies -{ - [Dependency(ReplaceServices = true)] - [ExposeServices(typeof(ISampleAppService), typeof(SampleClientProxy))] - public partial class SampleClientProxy : ClientProxyBase, ISampleAppService - { - public virtual async Task GetAsync() - { - return await RequestAsync(nameof(GetAsync)); - } - - public virtual async Task GetAuthorizedAsync() - { - return await RequestAsync(nameof(GetAuthorizedAsync)); - } - } -} diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/SampleClientProxy.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/SampleClientProxy.cs deleted file mode 100644 index b8b7874053..0000000000 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/ClientProxies/SampleClientProxy.cs +++ /dev/null @@ -1,8 +0,0 @@ -// This file is part of SampleClientProxy, you can customize it here -// ReSharper disable once CheckNamespace -namespace MyCompanyName.MyProjectName.Samples.ClientProxies -{ - public partial class SampleClientProxy - { - } -} diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.abppkg.json new file mode 100644 index 0000000000..7deef5e383 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyCompanyName.MyProjectName.HttpApi.Client.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyProjectNameHttpApiClientModule.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyProjectNameHttpApiClientModule.cs index 12929adf06..ecf17f49e4 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyProjectNameHttpApiClientModule.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Client/MyProjectNameHttpApiClientModule.cs @@ -12,7 +12,7 @@ namespace MyCompanyName.MyProjectName { public override void ConfigureServices(ServiceConfigurationContext context) { - context.Services.AddStaticHttpClientProxies( + context.Services.AddHttpClientProxies( typeof(MyProjectNameApplicationContractsModule).Assembly, MyProjectNameRemoteServiceConsts.RemoteServiceName ); diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.abppkg.json new file mode 100644 index 0000000000..515bfe64c4 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/MyCompanyName.MyProjectName.HttpApi.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/Samples/SampleController.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/Samples/SampleController.cs index 3d868495b9..b46ebc24e2 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/Samples/SampleController.cs +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi/Samples/SampleController.cs @@ -5,7 +5,7 @@ using Volo.Abp; namespace MyCompanyName.MyProjectName.Samples { - [Area("MyProjectName")] + [Area(MyProjectNameRemoteServiceConsts.ModuleName)] [RemoteService(Name = MyProjectNameRemoteServiceConsts.RemoteServiceName)] [Route("api/MyProjectName/sample")] public class SampleController : MyProjectNameController, ISampleAppService diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/FodyWeavers.xml b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/FodyWeavers.xml new file mode 100644 index 0000000000..00e1d9a1c1 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/FodyWeavers.xsd b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj new file mode 100644 index 0000000000..6fd3cf892a --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyCompanyName.MyProjectName.Installer.csproj @@ -0,0 +1,22 @@ + + + + + + + net5.0 + true + + + + + + + + + + + + + + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyProjectNameInstallerModule.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyProjectNameInstallerModule.cs new file mode 100644 index 0000000000..cc0bcb81a9 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyProjectNameInstallerModule.cs @@ -0,0 +1,21 @@ +using Volo.Abp.Studio; +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; + +namespace MyCompany.MyProjectName +{ + [DependsOn( + typeof(AbpStudioModuleInstallerModule), + typeof(AbpVirtualFileSystemModule) + )] + public class MyProjectNameInstallerModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + } +} diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyProjectNameInstallerPipelineBuilder.cs b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyProjectNameInstallerPipelineBuilder.cs new file mode 100644 index 0000000000..7d07f90a77 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Installer/MyProjectNameInstallerPipelineBuilder.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Studio.ModuleInstalling; + +namespace MyCompany.MyProjectName +{ + [Dependency(ServiceLifetime.Transient, ReplaceServices = true)] + [ExposeServices(typeof(IModuleInstallingPipelineBuilder))] + public class MyProjectNameInstallerPipelineBuilder : ModuleInstallingPipelineBuilderBase, IModuleInstallingPipelineBuilder, ITransientDependency + { + public async Task BuildAsync(ModuleInstallingContext context) + { + return GetBasePipeline(context); + } + } +} diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.abppkg.json new file mode 100644 index 0000000000..8b23fd1e69 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.MongoDB/MyCompanyName.MyProjectName.MongoDB.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mongodb" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.abppkg.json b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.abppkg.json new file mode 100644 index 0000000000..930c4018b3 --- /dev/null +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.mvc" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/MyProjectName/Index.cshtml b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/MyProjectName/Index.cshtml index 20fecbff87..8110971ab5 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/MyProjectName/Index.cshtml +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/Pages/MyProjectName/Index.cshtml @@ -5,12 +5,6 @@ @model MyCompanyName.MyProjectName.Web.Pages.MyProjectName.IndexModel @inject IStringLocalizer L -@section scripts { - - - -} - @{ }

MyProjectName

diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/client-proxies/MyProjectName-proxy.js b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/client-proxies/MyProjectName-proxy.js deleted file mode 100644 index 563b98a3f9..0000000000 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/wwwroot/client-proxies/MyProjectName-proxy.js +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is automatically generated by ABP framework to use MVC Controllers from javascript. */ - - -// module myProjectName - -(function(){ - - // controller myCompanyName.myProjectName.samples.sample - - (function(){ - - abp.utils.createNamespace(window, 'myCompanyName.myProjectName.samples.sample'); - - myCompanyName.myProjectName.samples.sample.get = function(ajaxParams) { - return abp.ajax($.extend(true, { - url: abp.appPath + 'api/MyProjectName/sample', - type: 'GET' - }, ajaxParams)); - }; - - myCompanyName.myProjectName.samples.sample.getAuthorized = function(ajaxParams) { - return abp.ajax($.extend(true, { - url: abp.appPath + 'api/MyProjectName/sample/authorized', - type: 'GET' - }, ajaxParams)); - }; - - })(); - -})(); - - diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.abppkg.json b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Application.Tests/MyCompanyName.MyProjectName.Application.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.abppkg.json b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.abppkg.json b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs index 68c4daec56..b78875d8a7 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs @@ -21,6 +21,7 @@ namespace MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp using (var application = AbpApplicationFactory.Create(options=> { options.Services.ReplaceConfiguration(_configuration); + options.UseAutofac(); })) { application.Initialize(); diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.abppkg.json b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index eced9908f6..71ffef8f35 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -8,6 +8,7 @@ + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs index baf1c93dcd..e75d629932 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyProjectNameConsoleApiClientModule.cs @@ -1,14 +1,16 @@ -using Volo.Abp.Http.Client.IdentityModel; +using Volo.Abp.Autofac; +using Volo.Abp.Http.Client.IdentityModel; using Volo.Abp.Modularity; namespace MyCompanyName.MyProjectName { [DependsOn( + typeof(AbpAutofacModule), typeof(MyProjectNameHttpApiClientModule), typeof(AbpHttpClientIdentityModelModule) )] public class MyProjectNameConsoleApiClientModule : AbpModule { - + } } diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.abppkg.json b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.abppkg.json new file mode 100644 index 0000000000..a686451fbc --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.MongoDB.Tests/MyCompanyName.MyProjectName.MongoDB.Tests.abppkg.json @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.abppkg.json b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.abppkg.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.TestBase/MyCompanyName.MyProjectName.TestBase.abppkg.json @@ -0,0 +1 @@ +{} \ No newline at end of file