Merge branch 'rel-5.0' into EngincanV/cms-kit-comment

pull/10711/head
enisn 4 years ago
commit 01b00f75e7

@ -4,19 +4,16 @@ This document provides a road map, release schedule and planned features for the
## Next Versions
### v5.0
### v5.1
This version will focus on the following works:
In [5.1 milestone](https://github.com/abpframework/abp/milestone/60), we will be mostly working on the following topics:
* Upgrading to .NET 6.0 ([#9004](https://github.com/abpframework/abp/issues/9004))
* Upgrading to Bootstrap 5.x ([#8922](https://github.com/abpframework/abp/issues/8922))
* C# and JavaScript Static Client Proxy Generation ([#9864](https://github.com/abpframework/abp/issues/9864))
* Revisit the microservice demo solution ([#8385](https://github.com/abpframework/abp/issues/8385))
* Publishing distributed events as transactional ([#6126](https://github.com/abpframework/abp/issues/6126))
* Performance optimizations; Enabling .NET Trimming, using source generators and reducing reflection, etc.
* Improving the abp.io platform and work more on contents and documents
* Maturing and documenting the [eShopOnAbp](https://github.com/abpframework/eShopOnAbp) project.
* Working on the [LeptonX](https://blog.abp.io/abp/LeptonX-Theme-for-ABP-Framework-Alpha-Release) theme and making it as the default theme for the ABP Framework UI options.
* Flexing the UI-backend dependency for the Angular UI, so we can easily create UI-only modules (like UI themes) with its own localization and settings.
* Working on more examples and guides.
**Planned release date**: End of Quarter 4, 2021. See the [5.0 milestone](https://github.com/abpframework/abp/milestone/51) to track the progress.
The planned release data for v5.1 is **February, 2022**. See the [5.1 milestone](https://github.com/abpframework/abp/milestone/60) on GitHub for all the issues we are working on.
## Backlog Items
@ -24,10 +21,10 @@ The *Next Versions* section above shows the main focus of the planned versions.
Here, a list of major items in the backlog we are considering to work on in the next versions.
* ([#497](https://github.com/abpframework/abp/issues/497)) API Versioning system: finalize & document
* ([#7221](https://github.com/abpframework/abp/issues/7221)) Alternative to IdentityServer4
* ([#2183](https://github.com/abpframework/abp/issues/2183)) Dapr integration
* ([#236](https://github.com/abpframework/abp/issues/236)) Resource based authorization system
* [#497](https://github.com/abpframework/abp/issues/497) / API Versioning system: finalize & document
* [#7221](https://github.com/abpframework/abp/issues/7221) / Alternative to IdentityServer4
* [#2183](https://github.com/abpframework/abp/issues/2183) / Dapr integration
* [#236](https://github.com/abpframework/abp/issues/236) / Resource based authorization system
* [#2882](https://github.com/abpframework/abp/issues/2882) / Providing a gRPC integration infrastructure (while it is [already possible](https://github.com/abpframework/abp-samples/tree/master/GrpcDemo) to create or consume gRPC endpoints for your application, we plan to create endpoints for the [standard application modules](https://docs.abp.io/en/abp/latest/Modules/Index))
* [#1754](https://github.com/abpframework/abp/issues/1754) / Multi-lingual entities
* [#57](https://github.com/abpframework/abp/issues/57) / Built-in CQRS infrastructure
@ -36,6 +33,7 @@ Here, a list of major items in the backlog we are considering to work on in the
* [#4223](https://github.com/abpframework/abp/issues/4223) / WebHook system
* [#162](https://github.com/abpframework/abp/issues/162) / Azure ElasticDB Integration for multitenancy
* [#2296](https://github.com/abpframework/abp/issues/2296) / Feature toggling infrastructure
* [#6655](https://github.com/abpframework/abp/pull/6655) / Use Typescript for the MVC UI
You can always check the milestone planning and the prioritized backlog issues on [the GitHub repository](https://github.com/abpframework/abp/milestones) for a detailed road map. The backlog items are subject to change. We are adding new items and changing priorities based on the community feedbacks and goals of the project.

@ -201,26 +201,3 @@ You may use observables in combination with [AsyncPipe](https://angular.io/guide
<input type="text" name="search" [(ngModel)]="list.filter">
```
## Breaking Change with ABP v3.0
We had to modify the `ListService` to make it work with `ngx-datatable`. Previously, the minimum value for `page` property was `1` and you could use it like this:
```html
<!-- other bindings are hidden in favor of brevity -->
<abp-table
[(page)]="list.page"
></abp-table>
```
As of v3.0, with ngx-datatable, the `page` property has to be set as `0` for the initial page. Therefore, if you used `ListService` on your tables before and are going to keep `abp-table`, you need to make the following change:
```html
<!-- other bindings are hidden in favor of brevity -->
<abp-table
[page]="list.page + 1"
(pageChange)="list.page = $event - 1"
></abp-table>
```
**Important Note:** The `abp-table` is not removed, but is deprecated and will be removed in the future. Please consider switching to ngx-datatable.

@ -81,6 +81,7 @@
var itemsPropertyName = $(this).data("autocompleteItemsProperty");
var filterParamName = $(this).data("autocompleteFilterParamName");
var selectedText = $(this).data("autocompleteSelectedItemName");
var parentSelector = $(this).data("autocompleteParentSelector");
var name = $(this).attr("name");
var selectedTextInputName = name.substring(0, name.length - 1) + "_Text]";
var selectedTextInput = $('<input>', {
@ -119,7 +120,8 @@
};
}
},
width: '100%'
width: '100%',
dropdownParent: parentSelector ? $(parentSelector) : $('body'),
});
$select.on('select2:select', function (e) {
selectedTextInput.val(e.params.data.text);

@ -75,13 +75,21 @@ namespace Volo.Abp.BlobStoring.Minio
return null;
}
Stream blobStream = null;
await client.GetObjectAsync(containerName, blobName, (stream) =>
var memoryStream = new MemoryStream();
await client.GetObjectAsync(containerName, blobName, (stream) =>
{
blobStream = stream;
if (stream != null)
{
stream.CopyTo(memoryStream);
memoryStream.Seek(0, SeekOrigin.Begin);
}
else
{
memoryStream = null;
}
});
return await TryCopyToMemoryStreamAsync(blobStream, args.CancellationToken);
return memoryStream;
}
protected virtual MinioClient GetMinioClient(BlobProviderArgs args)

@ -13,7 +13,7 @@
}
<form asp-page="/CmsKit/Menus/MenuItems/CreateModal">
<abp-modal>
<abp-modal id="menu-create-modal">
<abp-modal-header title="@L["New"].Value"></abp-modal-header>
<abp-modal-body>

@ -13,7 +13,7 @@
}
<form asp-page="/CmsKit/Menus/MenuItems/UpdateModal">
<abp-modal>
<abp-modal id="menu-update-modal">
<abp-modal-header title="@L["New"].Value"></abp-modal-header>
<abp-modal-body>
<abp-input asp-for="Id"/>

@ -33,6 +33,7 @@ $(function () {
$pageId.data('autocompleteValueProperty', 'id');
$pageId.data('autocompleteItemsProperty', 'items');
$pageId.data('autocompleteFilterParamName', 'filter');
$pageId.data('autocompleteParentSelector', '#menu-create-modal');
abp.dom.initializers.initializeAutocompleteSelects($pageId);
}

@ -34,6 +34,7 @@ $(function () {
$pageId.data('autocompleteValueProperty', 'id');
$pageId.data('autocompleteItemsProperty', 'items');
$pageId.data('autocompleteFilterParamName', 'filter');
$pageId.data('autocompleteParentSelector', '#menu-update-modal');
abp.dom.initializers.initializeAutocompleteSelects($pageId);
}

@ -29,8 +29,8 @@ namespace Volo.Abp.Identity
{
var localizeMessage = exception.LocalizeMessage(new LocalizationContext(ServiceProvider));
localizeMessage.ShouldContain("Şifre en az 6 karakter uzunluğunda olmalı.");
localizeMessage.ShouldContain("Şifre en az bir sayı ya da harf olmayan karakter içermeli.");
localizeMessage.ShouldContain("Şifre uzunluğu 6 karakterden uzun olmalıdır.");
localizeMessage.ShouldContain("Parola en az bir alfasayısal olmayan karakter içermeli");
}
using (CultureHelper.Use("en"))

@ -2,6 +2,7 @@
using Shouldly;
using Volo.Abp.Identity;
using Volo.Abp.Identity.Localization;
using Volo.Abp.Localization;
using Xunit;
namespace Volo.Abp.TenantManagement
@ -18,8 +19,11 @@ namespace Volo.Abp.TenantManagement
[Fact]
public void Test()
{
_stringLocalizer["PersonalSettingsSavedMessage"].Value
.ShouldBe("Your personal settings has been saved successfully.");
using (CultureHelper.Use("en"))
{
_stringLocalizer["PersonalSettingsSavedMessage"].Value
.ShouldBe("Your personal settings has been saved successfully.");
}
}
}
}
Loading…
Cancel
Save