From 13082811a8ebf799aa11bc63fad1cc042c07fcc1 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Fri, 20 Mar 2020 13:55:19 +0300 Subject: [PATCH 001/189] added-modal tag documentation --- docs/en/UI/AspNetCore/Tag-Helpers/Modals.md | 89 +++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/Modals.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md b/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md new file mode 100644 index 0000000000..560c4374f0 --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md @@ -0,0 +1,89 @@ +# Modals + +## Introduction + +`abp-modal` is a main element to create a modal. + +Basic usage: + +````xml +Launch modal + + + + + Woohoo, you're reading this text in a modal! + + + +```` + + + +## Demo + +See the [modals demo page](https://bootstrap-taghelpers.abp.io/Components/Modals) to see it in action. + +## Attributes + +### centered + +A value indicates the positioning of the modal. Should be one of the following values: + +* `false` (default value) +* `true` + +Example: + +````xml + + A simple warning alert—check it out! + +```` + +### size + +A value indicates the size of the modal. Should be one of the following values: + +* `Default` (default value) +* `Small` +* `Large` +* `ExtraLarge` + +### static + +A value indicates if the modal will be static. Should be one of the following values: + +* `false` (default value) +* `true` + +### Additional content + +`abp-modal-footer` can have multiple buttons with alignment option. + +Add `@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal` to your page. + +Example: + +````xml +Launch modal + + + + + Woohoo, you're reading this text in a modal! + + + +```` + +### button-alignment + +A value indicates the positioning of your modal footer buttons. Should be one of the following values: + +* `Default` (default value) +* `Start` +* `Center` +* `Around` +* `Between` +* `End` \ No newline at end of file From 94789c97077d4037baac9cd297db3d891d76a10c Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Fri, 20 Mar 2020 14:48:16 +0300 Subject: [PATCH 002/189] added collapse documentation --- docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md b/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md new file mode 100644 index 0000000000..44416ceba6 --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md @@ -0,0 +1,92 @@ +# Collapse + +## Introduction + +`abp-collapse-body` is the main container for showing and hiding content. `abp-collapse-id` is used to show and hide the content container. Can be triggered with both `abp-button` and `a` tags. + +Basic usage: + +````xml + + Link with href + + + Anim pariatur wolf moon tempor,,, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. + +```` + + + +## Demo + +See the [collapse demo page](https://bootstrap-taghelpers.abp.io/Components/Collapse) to see it in action. + +## Attributes + +### show + +A value indicates if the collapse body will be initialized visible or hidden. Should be one of the following values: + +* `false` (default value) +* `true` + +### multi + +A value indicates if an `abp-button` or `a` can show and hide multiple collapse body element. Should be one of the following values: + +* `false` (default value) +* `true` + +Sample: + +````xml + Toggle first element + + + + + + + Curabitur porta porttitor libero eu luctus. Praesent ultrices mattis commodo. Integer sodales massa risus, in molestie enim sagittis blandit + + + + + Anim pariatur wolf moon tempor,,, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. + + + +```` + +## Accordion example + +`abp-accordion` is the main container for the accordion items. + +Basic usage: + +````xml + + + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry rtat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. + + + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. + + + Anim pariatur wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. + + +```` + +## Attributes + +### active + +A value indicates if the accordion item will be initialized visible or hidden. Should be one of the following values: + +* `false` (default value) +* `true` + +### title + +A value indicates the visible title of the accordion item. Should be a string value. From 11b809d61cde41358e682f900b9df3ef0ad1ba6b Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Fri, 20 Mar 2020 15:35:30 +0300 Subject: [PATCH 003/189] added dropdowns documentation --- .../en/UI/AspNetCore/Tag-Helpers/Dropdowns.md | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/Dropdowns.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Dropdowns.md b/docs/en/UI/AspNetCore/Tag-Helpers/Dropdowns.md new file mode 100644 index 0000000000..1c062b5f73 --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Dropdowns.md @@ -0,0 +1,97 @@ +# Dropdowns + +## Introduction + +`abp-dropdown` is the main container for dropdown content. + +Basic usage: + +````xml + + + + Action + Another action + Something else here + + +```` + + + +## Demo + +See the [dropdown demo page](https://bootstrap-taghelpers.abp.io/Components/Dropdowns) to see it in action. + +## Attributes + +### direction + +A value indicates which direction the dropdown buttons will be displayed to. Should be one of the following values: + +* `Down` (default value) +* `Up` +* `Right` +* `Left` + +### dropdown-style + +A value indicates if an `abp-dropdown-button` will have split icon for dropdown. Should be one of the following values: + +* `Single` (default value) +* `Split` + + + +## Menu items + +`abp-dropdown-menu` is the main container for dropdown menu items. + +Basic usage: + +````xml + + + + Dropdown Header + Action + Active action + Disabled action + + Dropdown Item Text + Something else here + + +```` + +## Attributes + +### align + +A value indicates which direction `abp-dropdown-menu` items will be aligned to. Should be one of the following values: + +* `Left` (default value) +* `Right` + +### Additional content + +`abp-dropdown-menu` can also contain additional HTML elements like headings, paragraphs, dividers or form element. + +Example: + +````xml + + + +
+ + + + + + + New around here? Sign up + Forgot password? +
+
+```` From d65543e02aae52810fe2efbe8083142f2aa11e95 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 20 Mar 2020 22:57:14 +0800 Subject: [PATCH 004/189] Translate customizing application modules overriding service doc --- ...Application-Modules-Overriding-Services.md | 2 +- ...Application-Modules-Overriding-Services.md | 167 +++++++++++++++++- 2 files changed, 166 insertions(+), 3 deletions(-) diff --git a/docs/en/Customizing-Application-Modules-Overriding-Services.md b/docs/en/Customizing-Application-Modules-Overriding-Services.md index 16fbc9d2a4..b735d51f6f 100644 --- a/docs/en/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/en/Customizing-Application-Modules-Overriding-Services.md @@ -10,7 +10,7 @@ You have different options can be used based on your requirement those will be e ## Replacing an Interface -If given service defines an interface, like the `IdentityUserAppService` class implements the `IIdentityAppService`, you can re-implement the same interface and replace the current implementation by your class. Example: +If given service defines an interface, like the `IdentityUserAppService` class implements the `IIdentityUserAppService`, you can re-implement the same interface and replace the current implementation by your class. Example: ````csharp public class MyIdentityUserAppService : IIdentityUserAppService, ITransientDependency diff --git a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md index 083321f7be..cb40de9bdb 100644 --- a/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md +++ b/docs/zh-Hans/Customizing-Application-Modules-Overriding-Services.md @@ -1,3 +1,166 @@ -# 自定义应用模块: 覆盖服务 +# 自定义应用模块: 重写服务 -TODO... \ No newline at end of file +你可能想要**更改**依赖模块的**行为(业务逻辑)**. 在这种情况下,你可以使用[依赖注入](Dependency-Injection.md)的能力替换服务,控制器甚至页面模型到你自己的实现. + +注册到依赖注入的任何类,包括ABP框架的服务都可以被**替换**. + +你可以根据自己的需求使用不同的选项,下面的章节中将介绍这些选项. + +> 请注意,某些服务方法可能不是virtual,你可能无法override,我们会通过设计将其virtual,如果你发现任何方法不可以被覆盖,请[创建一个issue](https://github.com/abpframework/abp/issues/new)或者你直接修改后并发送**pull request**到GitHub. + +## 替换接口 + +如果给定的服务定义了接口,像 `IdentityUserAppService` 类实现了 `IIdentityUserAppService` 接口,你可以为这个接口创建自己的实现并且替换当前的实现. 例如: + +````csharp +public class MyIdentityUserAppService : IIdentityUserAppService, ITransientDependency +{ + //... +} +```` + +`MyIdentityUserAppService` 通过命名约定替换了 `IIdentityUserAppService` 的当前实现. 如果你的类名不匹配,你需要手动公开服务接口: + +````csharp +[ExposeServices(typeof(IIdentityUserAppService))] +public class TestAppService : IIdentityUserAppService, ITransientDependency +{ + //... +} +```` + +依赖注入系统允许为一个接口注册多个服务. 注入接口时会解析最后一个注入的服务. 显式的替换服务是一个好习惯. + +示例: + +````csharp +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(IIdentityUserAppService))] +public class TestAppService : IIdentityUserAppService, ITransientDependency +{ + //... +} +```` + +使用这种方法, `IIdentityUserAppService` 接口将只会有一个实现. 也可以使用以下方法替换服务: + +````csharp +context.Services.Replace( + ServiceDescriptor.Transient() +); +```` + +你可以在[模块](Module-Development-Basics.md)类的 `ConfigureServices` 方法编写替换服务代码. + +## 重写一个服务类 + +大多数情况下,你会仅想改变服务当前实现的一个或几个方法. 重新实现完整的接口变的繁琐,更好的方法是继承原始类并重写方法。 + +### 示例: 重写服务方法 + +````csharp +[Dependency(ReplaceServices = true)] +public class MyIdentityUserAppService : IdentityUserAppService +{ + //... + public MyIdentityUserAppService( + IdentityUserManager userManager, + IIdentityUserRepository userRepository, + IGuidGenerator guidGenerator + ) : base( + userManager, + userRepository, + guidGenerator) + { + } + + public override async Task CreateAsync(IdentityUserCreateDto input) + { + if (input.PhoneNumber.IsNullOrWhiteSpace()) + { + throw new AbpValidationException( + "Phone number is required for new users!", + new List + { + new ValidationResult( + "Phone number can not be empty!", + new []{"PhoneNumber"} + ) + } + ); } + + return await base.CreateAsync(input); + } +} +```` + +示例中**重写**了 `IdentityUserAppService` [应用程序](Application-Services.md) `CreateAsync` 方法检查手机号码. 然后调用了基类方法继续**基本业务逻辑**. 通过这种方法你可以在基本业务逻辑**之前**和**之后**执行其他业务逻辑. + +你也可以完全**重写**整个业务逻辑去创建用户,而不是调用基类方法. + +### 示例: 重写领域服务 + +````csharp +[Dependency(ReplaceServices = true)] +[ExposeServices(typeof(IdentityUserManager))] +public class MyIdentityUserManager : IdentityUserManager +{ + public MyIdentityUserManager( + IdentityUserStore store, + IOptions optionsAccessor, + IPasswordHasher passwordHasher, + IEnumerable> userValidators, + IEnumerable> passwordValidators, + ILookupNormalizer keyNormalizer, + IdentityErrorDescriber errors, + IServiceProvider services, + ILogger logger, + ICancellationTokenProvider cancellationTokenProvider + ) : base( + store, + optionsAccessor, + passwordHasher, + userValidators, + passwordValidators, + keyNormalizer, + errors, + services, + logger, + cancellationTokenProvider) + { + } + + public override async Task CreateAsync(IdentityUser user) + { + if (user.PhoneNumber.IsNullOrWhiteSpace()) + { + throw new AbpValidationException( + "Phone number is required for new users!", + new List + { + new ValidationResult( + "Phone number can not be empty!", + new []{"PhoneNumber"} + ) + } + ); + } + + return await base.CreateAsync(user); + } +} +```` + +示例中类继承了 `IdentityUserManager` [领域服务](Domain-Services.md),并且重写了 `CreateAsync` 方法进行了与之前相同的手机号码检查. 结果也是一样的,但是这次我们在领域服务实现了它,假设这是我们系统的**核心领域逻辑**. + +> 这里需要 `[ExposeServices(typeof(IdentityUserManager))]` attribute,因为 `IdentityUserManager` 没有定义接口 (像 `IIdentityUserManager`) ,依赖注入系统并不会按照约定公开继承类的服务(如已实现的接口). + +参阅[本地化系统](Localization.md)了解如何自定义错误消息. + +### 重写其他服务 + +控制器,框架服务,视图组件类以及其他类型注册到依赖注入的类都可以像上面的示例那样被重写. + +## 如何找到服务? + +[模块文档](Modules/Index.md) 包含了定义的主要服务列表. 另外 你也可以查看[源码](https://github.com/abpframework/abp/tree/dev/modules)找到所有的服务. \ No newline at end of file From 1bcc4481643ced2f7bc142f12473675d1df3bb9e Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Fri, 20 Mar 2020 22:52:20 +0300 Subject: [PATCH 005/189] added list groups documentation --- .../UI/AspNetCore/Tag-Helpers/List-Groups.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/List-Groups.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/List-Groups.md b/docs/en/UI/AspNetCore/Tag-Helpers/List-Groups.md new file mode 100644 index 0000000000..b1e6e7f499 --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/List-Groups.md @@ -0,0 +1,78 @@ +# List Groups + +## Introduction + +`abp-list-group` is the main container for list group content. + +Basic usage: + +````xml + + Cras justo odio + Dapibus ac facilisis in + Morbi leo risus + Vestibulum at eros + +```` + + + +## Demo + +See the [list groups demo page](https://bootstrap-taghelpers.abp.io/Components/ListGroups) to see it in action. + +## Attributes + +### flush + +A value indicates `abp-list-group` items to remove some borders and rounded corners to render list group items edge-to-edge in a parent container. Should be one of the following values: + +* `false` (default value) +* `true` + +### active + +A value indicates if an `abp-list-group-item` to be active. Should be one of the following values: + +* `false` (default value) +* `true` + +### disabled + +A value indicates if an `abp-list-group-item` to be disabled. Should be one of the following values: + +* `false` (default value) +* `true` + +### href + +A value indicates if an `abp-list-group-item` has a link. Should be a string link value. + +### type + +A value indicates an `abp-list-group-item` style class with a stateful background and color. Should be one of the following values: + +* `Default` (default value) +* `Primary` +* `Secondary` +* `Success` +* `Danger` +* `Warning` +* `Info` +* `Light` +* `Dark` +* `Link` + +### Additional content + +`abp-list-group-item` can also contain additional HTML elements like spans. + +Example: + +````xml + + Cras justo odio 14 + Dapibus ac facilisis in 2 + Morbi leo risus 1 + +```` From 0239317b1d7804e7505d2e36b9538d5d2fd45c5e Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Sat, 21 Mar 2020 00:16:40 +0300 Subject: [PATCH 006/189] added paginator documentation --- .../en/UI/AspNetCore/Tag-Helpers/Paginator.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/Paginator.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Paginator.md b/docs/en/UI/AspNetCore/Tag-Helpers/Paginator.md new file mode 100644 index 0000000000..0cc63d49e8 --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Paginator.md @@ -0,0 +1,57 @@ +# Paginator + +## Introduction + +`abp-paginator` is the abp tag for pagination. Requires `Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination.PagerModel` type of model. + +Basic usage: + +````xml + +```` + +Model: + +````xml +using Microsoft.AspNetCore.Mvc.RazorPages; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components +{ + public class PaginatorModel : PageModel + { + public PagerModel PagerModel { get; set; } + + public void OnGet(int currentPage, string sort) + { + PagerModel = new PagerModel(100, 10, currentPage, 10, "Paginator", sort); + } + } +} +```` + + + +## Demo + +See the [paginator demo page](https://bootstrap-taghelpers.abp.io/Components/Paginator) to see it in action. + +## Attributes + +### model + +`Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Pagination.PagerModel` type of model can be initialized with the following data: + +* `totalCount` +* `shownItemsCount` +* `currentPage` +* `pageSize` +* `pageUrl` +* `sort` (default null) + +### show-info + +A value indicates if an extra information about start, end and total records will be displayed. Should be one of the following values: + +* `false` (default value) +* `true` From 2088b62caf5cc0216fc9c87ba8d176d512c5ee2a Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Sat, 21 Mar 2020 00:24:14 +0300 Subject: [PATCH 007/189] fixed bootstrap popover link --- .../Pages/Components/Popovers.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Popovers.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Popovers.cshtml index 7f43407831..b221ebc4f6 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Popovers.cshtml +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Popovers.cshtml @@ -25,7 +25,7 @@

Popovers

-

Based on Bootstrap Popovers.

+

Based on Bootstrap Popovers.

Example

From 9e932d8457d128d20ad970058dd9cbeae6db9dde Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Sat, 21 Mar 2020 03:09:36 +0300 Subject: [PATCH 008/189] added progress bars documentation --- .../AspNetCore/Tag-Helpers/Progress-Bars.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/Progress-Bars.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Progress-Bars.md b/docs/en/UI/AspNetCore/Tag-Helpers/Progress-Bars.md new file mode 100644 index 0000000000..dc69f7e47e --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Progress-Bars.md @@ -0,0 +1,70 @@ +# Progress Bars + +## Introduction + +`abp-progress-bar` is the abp tag for progress bar status. + +Basic usage: + +````xml + + + %25 + + + + %50 + + + + %10 + + +```` + + + +## Demo + +See the [progress bars demo page](https://bootstrap-taghelpers.abp.io/Components/Progress-Bars) to see it in action. + +## Attributes + +### value + +A value indicates the current progress of the bar. + +### type + +A value indicates the background color of the progress bar. Should be one of the following values: + +* `Default` (default value) +* `Secondary` +* `Success` +* `Danger` +* `Warning` +* `Info` +* `Light` +* `Dark` + +### min-value + +Minimum value of the progress bar. Default is 0. + +### max-value + +Maximum value of the progress bar. Default is 100. + +### strip + +A value indicates if the background style of the progress bar is stripped. Should be one of the following values: + +* `false` (default value) +* `true` + +### animation + +A value indicates if the stripped background style of the progress bar is animated. Should be one of the following values: + +* `false` (default value) +* `true` \ No newline at end of file From 58fcc87e3a231845058fd23c67d4ff47ce20f724 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Sat, 21 Mar 2020 03:36:38 +0300 Subject: [PATCH 009/189] added tooltips documentation --- docs/en/UI/AspNetCore/Tag-Helpers/Tooltips.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Tag-Helpers/Tooltips.md diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Tooltips.md b/docs/en/UI/AspNetCore/Tag-Helpers/Tooltips.md new file mode 100644 index 0000000000..55b6e574e8 --- /dev/null +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Tooltips.md @@ -0,0 +1,35 @@ +# Tooltips + +## Introduction + +`abp-tooltip` is the abp tag for tooltips. + +Basic usage: + +````xml + + Tooltip Default + + + + Tooltip on top + + + + Tooltip on right + + + + Tooltip on bottom + + + + Disabled button Tooltip + +```` + + + +## Demo + +See the [tooltips demo page](https://bootstrap-taghelpers.abp.io/Components/Tooltips) to see it in action. From 0fee27b9c494762c02595bd58791807e9f038a30 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Sat, 21 Mar 2020 03:43:09 +0300 Subject: [PATCH 010/189] updated tag helpers index links --- docs/en/UI/AspNetCore/Tag-Helpers/Index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Index.md b/docs/en/UI/AspNetCore/Tag-Helpers/Index.md index 5f36395c00..a7aa0b65d2 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Index.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Index.md @@ -15,6 +15,16 @@ Here, the list of components those are wrapped by the ABP Framework: * [Buttons](Buttons.md) * [Cards](Cards.md) * [Alerts](Alerts.md) +* [Tabs](Tabs.md) +* [Grids](Grids.md) +* [Modals](Modals.md) +* [Collapse](Collapse.md) +* [Dropdowns](Dropdowns.md) +* [List Groups](List-Groups.md) +* [Paginator](Paginator.md) +* [Popovers](Popovers.md) +* [Progress Bars](Progress-Bars.md) +* [Tooltips](Tooltips.md) * ... > Until all the tag helpers are documented, you can visit https://bootstrap-taghelpers.abp.io/ to see them with live samples. From 840f55932f5f7115ed9c60071d09ed0f362825c3 Mon Sep 17 00:00:00 2001 From: ChangYinShung Date: Sat, 21 Mar 2020 16:51:35 +0800 Subject: [PATCH 011/189] feat: localization updated zh-Hant --- .../Abp/TenantManagement/Localization/Resources/zh-Hant.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json index 858d7d6f9b..30c58cbc6d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json @@ -15,6 +15,8 @@ "Permission:Edit": "編輯", "Permission:Delete": "刪除", "Permission:ManageConnectionStrings": "管理資料庫連線字串", - "Permission:ManageFeatures": "管理功能" + "Permission:ManageFeatures": "管理功能", + "DisplayName:AdminEmailAddress": "管理者信箱", + "DisplayName:AdminPassword": "管理者密碼" } } \ No newline at end of file From 46bb595e93a3bb50f54497d09abe796788b814d4 Mon Sep 17 00:00:00 2001 From: maliming Date: Sat, 21 Mar 2020 17:02:09 +0800 Subject: [PATCH 012/189] Update zh-Hant.json --- .../Abp/TenantManagement/Localization/Resources/zh-Hant.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json index 30c58cbc6d..ea8be8ae0e 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo/Abp/TenantManagement/Localization/Resources/zh-Hant.json @@ -16,7 +16,7 @@ "Permission:Delete": "刪除", "Permission:ManageConnectionStrings": "管理資料庫連線字串", "Permission:ManageFeatures": "管理功能", - "DisplayName:AdminEmailAddress": "管理者信箱", + "DisplayName:AdminEmailAddress": "管理者信箱", "DisplayName:AdminPassword": "管理者密碼" } -} \ No newline at end of file +} From 0492e2476d8c91a98745f0cf36ff078f4c764b15 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Sat, 21 Mar 2020 12:21:48 +0000 Subject: [PATCH 013/189] Added virtual to TenantCreateDto. --- .../Volo/Abp/TenantManagement/TenantCreateDto.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs index 189d7d0f80..7b52a6dd4b 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo/Abp/TenantManagement/TenantCreateDto.cs @@ -12,11 +12,11 @@ namespace Volo.Abp.TenantManagement [Required] [EmailAddress] [MaxLength(256)] - public string AdminEmailAddress { get; set; } + public virtual string AdminEmailAddress { get; set; } [Required] [MaxLength(128)] - public string AdminPassword { get; set; } + public virtual string AdminPassword { get; set; } } } \ No newline at end of file From cf5852c83e1cbe5dcef3f712ed4b61aaa09bbef9 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Sat, 21 Mar 2020 21:03:02 +0800 Subject: [PATCH 014/189] Update CLI.md --- docs/zh-Hans/CLI.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/zh-Hans/CLI.md b/docs/zh-Hans/CLI.md index ab1eba8fe7..dcd951a5c0 100644 --- a/docs/zh-Hans/CLI.md +++ b/docs/zh-Hans/CLI.md @@ -22,7 +22,7 @@ dotnet tool update -g Volo.Abp.Cli 生成基于ABP[启动模板](Startup-Templates/Index.md)的新解决方案. -基本用法: +用法: ````bash abp new <解决方案名称> [options] @@ -70,7 +70,7 @@ abp new Acme.BookStore > 需要注意的是添加的模块可能需要额外的配置,通常会在包的文档中指出. -基本用法: +用法: ````bash abp add-package <包名> [options] @@ -94,7 +94,7 @@ abp add-package Volo.Abp.MongoDB > 由于分层,不同的数据库提供程序选项或其他原因,业务模块通常由多个包组成. 使用`add-module`命令可以大大简化向模块添加模块的过程. 但是每个模块可能需要一些其他配置,这些配置通常在相关模块的文档中指出. -基本用法: +用法: ````bash abp add-module <模块名称> [options] @@ -174,26 +174,26 @@ abp logout ### generate-proxy -生成typescript服务和DTO代理 +为你的HTTP API生成客户端代码,简化客户端使用服务的成本. 在运行 `generate-proxy` 命令之前,你的host必须启动正在运行. -基本用法: +用法: ````bash -abp generate-proxy [options] +abp generate-proxy [options] ```` +#### Options + +* `--apiUrl` 或者 `-a`:指定HTTP API的根URL. 如果未指定这个选项,默认使用你Angular应用程序的`environment.ts`文件API URL. 在运行 `generate-proxy` 命令之前,你的host必须启动正在运行. +* `--ui` 或者 `-u`: 指定UI框架,默认框架是angular.当前只有angular一个选项, 但我们会通过更改CLI增加新的选项. 尽请关注! +* `--module` 或者 `-m`:指定模块名. 默认模块名称为app. 如果你想所有模块,你可以指定 `--module all` 命令. + 示例: ````bash abp generate-proxy --apiUrl https://localhost:44305 --ui angular --module all ```` -#### Options - -* `--apiUrl` 或者 `-a`:如果未指定这个选项,默认使用你的environment.ts文件的API URL, 你可以随时使用这个选项指定API源. -* `--ui` 或者 `-u`: 指定UI框架,默认框架是angular.当前只有angular一个选项, 但我们会通过更改CLI增加新的选项. 尽请关注! -* `--module` 或者 `-m`:指定模块名. 默认模块名称为app. 如果你想所有模块,你可以指定 `--module all` 命令. - ### help CLI的基本用法信息. From 8117629aed863b55ab37945ec7e4a059d73fbc9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 22 Mar 2020 15:29:10 +0300 Subject: [PATCH 015/189] Add Customize/Extend the UI to the navigation menu. --- docs/en/docs-nav.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index c273e59346..5c2c3a8e64 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -302,6 +302,10 @@ { "text": "Theming", "path": "UI/AspNetCore/Theming.md" + }, + { + "text": "Customize/Extend the UI", + "path": "UI/AspNetCore/Customization-User-Interface.md" } ] }, From 5f38e4bf316dab7ebfada571c20e2c2699b4daa7 Mon Sep 17 00:00:00 2001 From: YinChang Date: Sun, 22 Mar 2020 21:19:43 +0800 Subject: [PATCH 016/189] fix(ng.core) correct params of SetEnvironment Action --- npm/ng-packs/packages/core/src/lib/states/config.state.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/states/config.state.ts b/npm/ng-packs/packages/core/src/lib/states/config.state.ts index 5269946391..6843fe2dc6 100644 --- a/npm/ng-packs/packages/core/src/lib/states/config.state.ts +++ b/npm/ng-packs/packages/core/src/lib/states/config.state.ts @@ -300,7 +300,7 @@ export class ConfigState { } @Action(SetEnvironment) - setEnvironment({ patchState }: StateContext, environment: Config.Environment) { + setEnvironment({ patchState }: StateContext, { environment }:SetEnvironment) { return patchState({ environment, }); From a7d42cb9320c9768ec486cbeddfed7e762eedf45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 22 Mar 2020 17:14:55 +0300 Subject: [PATCH 017/189] Create datatables.md --- docs/en/UI/AspNetCore/Libraries/datatables.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/en/UI/AspNetCore/Libraries/datatables.md diff --git a/docs/en/UI/AspNetCore/Libraries/datatables.md b/docs/en/UI/AspNetCore/Libraries/datatables.md new file mode 100644 index 0000000000..a5a66e9e19 --- /dev/null +++ b/docs/en/UI/AspNetCore/Libraries/datatables.md @@ -0,0 +1,3 @@ +# ABP Datatables.Net Integration for ASP.NET Core UI + +TODO \ No newline at end of file From 261f3adb1b59ea093b2db77524fe711be964b9f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 22 Mar 2020 17:15:33 +0300 Subject: [PATCH 018/189] rename datatables --- docs/en/UI/AspNetCore/Libraries/{datatables.md => datatable1s.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/en/UI/AspNetCore/Libraries/{datatables.md => datatable1s.md} (100%) diff --git a/docs/en/UI/AspNetCore/Libraries/datatables.md b/docs/en/UI/AspNetCore/Libraries/datatable1s.md similarity index 100% rename from docs/en/UI/AspNetCore/Libraries/datatables.md rename to docs/en/UI/AspNetCore/Libraries/datatable1s.md From af2c478fdc8bad29f430a5cb236e9c0fcfe78bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 22 Mar 2020 17:15:55 +0300 Subject: [PATCH 019/189] Rename DatatablesNet.md --- .../UI/AspNetCore/Libraries/{datatable1s.md => DatatablesNet.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/en/UI/AspNetCore/Libraries/{datatable1s.md => DatatablesNet.md} (100%) diff --git a/docs/en/UI/AspNetCore/Libraries/datatable1s.md b/docs/en/UI/AspNetCore/Libraries/DatatablesNet.md similarity index 100% rename from docs/en/UI/AspNetCore/Libraries/datatable1s.md rename to docs/en/UI/AspNetCore/Libraries/DatatablesNet.md From aaaed046378ad0c677927fca27aa36f249f80df6 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 23 Mar 2020 11:35:32 +0800 Subject: [PATCH 020/189] Keep the hash of the url in the setQueryString method. Resolve #3234 --- .../Volo.Docs.Web/Pages/Documents/Project/index.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js index 8f53f1cf6e..1b3d5ac7c3 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js @@ -119,16 +119,17 @@ }; var setQueryString = function () { - clearQueryString(); - - var uri = window.location.href.toString(); - var comboboxes = $(".doc-section-combobox"); - if (comboboxes.length < 1) { return; } + var hash = document.location.hash; + + clearQueryString(); + + var uri = window.location.href.toString(); + var new_uri = uri + "?"; for (var i = 0; i < comboboxes.length; i++) { @@ -142,7 +143,7 @@ } } - window.history.replaceState({}, document.title, new_uri); + window.history.replaceState({}, document.title, new_uri + hash); }; var getTenYearsLater = function () { From 9cc51474c34fc38ef160aa9749997da12a5b788f Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 23 Mar 2020 13:48:08 +0800 Subject: [PATCH 021/189] Migrate only tenants with connection strings. Resolve #3292 --- .../Data/MyProjectNameDbMigrationService.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index bf0a315c93..6c09ffd233 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; @@ -38,15 +39,14 @@ namespace MyCompanyName.MyProjectName.Data await MigrateHostDatabaseAsync(); + var tenants = await _tenantRepository.GetListAsync(includeDetails: true); + var i = 0; - var tenants = await _tenantRepository.GetListAsync(); - foreach (var tenant in tenants) + foreach (var tenant in tenants.Where(t => t.ConnectionStrings.Any())) { - i++; - using (_currentTenant.Change(tenant.Id)) { - Logger.LogInformation($"Migrating {tenant.Name} database schema... ({i} of {tenants.Count})"); + Logger.LogInformation($"Migrating {tenant.Name} database schema... ({++i} of {tenants.Count})"); await MigrateTenantDatabasesAsync(tenant); Logger.LogInformation($"Successfully completed {tenant.Name} database migrations."); } From dc93296d6325c9d74b034cbb6472cde164ee2c32 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Mon, 23 Mar 2020 09:21:43 +0300 Subject: [PATCH 022/189] docs: add service-proxies document --- docs/en/UI/Angular/Config-State.md | 4 ++ docs/en/UI/Angular/Permission-Management.md | 2 +- docs/en/UI/Angular/Rest-Service.md | 3 + docs/en/UI/Angular/Service-Proxies.md | 67 ++++++++++++++++++ .../generated-files-via-generate-proxy.png | Bin 0 -> 240566 bytes docs/en/docs-nav.json | 4 ++ 6 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 docs/en/UI/Angular/Rest-Service.md create mode 100644 docs/en/UI/Angular/Service-Proxies.md create mode 100644 docs/en/UI/Angular/images/generated-files-via-generate-proxy.png diff --git a/docs/en/UI/Angular/Config-State.md b/docs/en/UI/Angular/Config-State.md index 72c8e6c6fd..7fc202982c 100644 --- a/docs/en/UI/Angular/Config-State.md +++ b/docs/en/UI/Angular/Config-State.md @@ -288,3 +288,7 @@ Note that **you do not have to call this method at application initiation**, bec #### Environment Properties Please refer to `Config.Environment` type for all the properties you can pass to `dispatchSetEnvironment` as parameter. It can be found in the [config.ts file](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/config.ts#L13). + +## What's Next? + +* [Component Replacement](./Component-Replacement.md) \ No newline at end of file diff --git a/docs/en/UI/Angular/Permission-Management.md b/docs/en/UI/Angular/Permission-Management.md index 6e5c5d7155..ababd25e7f 100644 --- a/docs/en/UI/Angular/Permission-Management.md +++ b/docs/en/UI/Angular/Permission-Management.md @@ -76,4 +76,4 @@ Granted Policies are stored in the `auth` property of `ConfigState`. ## What's Next? -* [Component Replacement](./Component-Replacement.md) \ No newline at end of file +* [Config State](./Config-State.md) \ No newline at end of file diff --git a/docs/en/UI/Angular/Rest-Service.md b/docs/en/UI/Angular/Rest-Service.md new file mode 100644 index 0000000000..d817cab3c6 --- /dev/null +++ b/docs/en/UI/Angular/Rest-Service.md @@ -0,0 +1,3 @@ +## Rest Service + +TODO \ No newline at end of file diff --git a/docs/en/UI/Angular/Service-Proxies.md b/docs/en/UI/Angular/Service-Proxies.md new file mode 100644 index 0000000000..56d640ec54 --- /dev/null +++ b/docs/en/UI/Angular/Service-Proxies.md @@ -0,0 +1,67 @@ +## Service Proxies + +It is common to call a REST endpoint in the server from our Angular applications. In this case, we generally create **services** (those have methods for each service method on the server side) and **model objects** (matches to [DTOs](../../Data-Transfer-Objects) in the server side). + +In addition to manually creating such server-interacting services, we could use tools like [NSWAG](https://github.com/RicoSuter/NSwag) to generate service proxies for us. But NSWAG has the following problems we've experienced: + +* It generates a **big, single** .ts file which has some problems; + * It get **too large** when your application grows. + * It doesn't fit into the **[modular](../../Module-Development-Basics) approach** of the ABP framework. +* It creates a bit **ugly code**. We want to have a clean code (just like if we write manually). +* It can not generate the same **method signature** declared in the server side (because swagger.json doesn't exactly reflect the method signature of the backend service). We've created an endpoint that exposes server side method contacts to allow clients generate a better aligned client proxies. + +ABP CLI `generate-proxies` command automatically generates the typescript client proxies by creating folders which separated by module names in the `src/app` folder. +Run the following command in the **root folder** of the angular application: + +```bash +abp generate-proxy +``` + +It only creates proxies only for your own application's services. It doesn't create proxies for the services of the application modules you're using (by default). There are several options. See the [CLI documentation](../../CLI). + +The files generated with the `--module all` option like below: + +![generated-files-via-generate-proxy](./images/generated-files-via-generate-proxy.png) + +### Services + +Each generated service matches a back-end controller. The services methods call back-end APIs via [RestService](./Rest-Service.md). + + + +The `providedIn` property of the services is defined as `'root'`. Therefore no need to add a service as a provider to a module. You can use a service by injecting it into a constructor as shown below: + +```js +import { AbpApplicationConfigurationService } from '../app/shared/services'; + +//... +export class HomeComponent{ + constructor(private appConfigService: AbpApplicationConfigurationService) {} + + ngOnInit() { + this.appConfigService.get().subscribe() + } +} +``` + +The Angular compiler removes the services that have not been injected anywhere from the final output. See the [tree-shakable providers documentation](https://angular.io/guide/dependency-injection-providers#tree-shakable-providers). + +### Models + +The generated models match the DTOs in the back-end. Each model is generated as a class under the `src/app/*/shared/models` folder. + +There are a few [base classes](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/dtos.ts) in the `@abp/ng.core` package. Some models extend these classes. + +A class instance can be created as shown below: + +```js +import { IdentityRoleCreateDto } from '../identity/shared/models'; +//... +const instance = new IdentityRoleCreateDto({name: 'Role 1', isDefault: false, isPublic: true}) +``` + +Initial values ​​can optionally be passed to each class constructor. + +## What's Next? + +* [Localization](./Localization.md) \ No newline at end of file diff --git a/docs/en/UI/Angular/images/generated-files-via-generate-proxy.png b/docs/en/UI/Angular/images/generated-files-via-generate-proxy.png new file mode 100644 index 0000000000000000000000000000000000000000..77a120a35ddda488b21f575917e7e704ee58b83b GIT binary patch literal 240566 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%0A|x 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%0DB4diPpnh7Tg|E|$rrh!1Im5<36#++7o|kKq-W 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

s%n+a76Wa=Pzhl>ePyT5UAtf=yk2bVSo2A|b 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 i0fT@+z#uRK5cvP!R=^hNR7^?$0000 Date: Mon, 23 Mar 2020 09:50:12 +0300 Subject: [PATCH 023/189] Update NpmGlobalPackagesChecker.cs --- .../Abp/Cli/ProjectModification/NpmGlobalPackagesChecker.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 8140b73b64..59c262e065 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 @@ -9,7 +9,7 @@ namespace Volo.Abp.Cli.ProjectModification { public ILogger Logger { get; set; } - public NpmGlobalPackagesChecker(PackageJsonFileFinder packageJsonFileFinder) + public NpmGlobalPackagesChecker() { Logger = NullLogger.Instance; } From 1ea03cc179a496574422e44fc814fc3c1d9f2a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Mon, 23 Mar 2020 14:45:02 +0300 Subject: [PATCH 024/189] Update CreateModal.cshtml.cs --- .../Pages/TenantManagement/Tenants/CreateModal.cshtml.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml.cs b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml.cs index 45e86e2985..098f7e1393 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml.cs +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/CreateModal.cshtml.cs @@ -44,6 +44,7 @@ namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants public string AdminEmailAddress { get; set; } [Required] + [DataType(DataType.Password)] [MaxLength(128)] public string AdminPassword { get; set; } } From be017f8ea78e734244127c1508a8a87a8a320f22 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 23 Mar 2020 15:07:34 +0300 Subject: [PATCH 025/189] corrected multi attribute explanation --- docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md b/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md index 44416ceba6..38fab4d44b 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Collapse.md @@ -32,7 +32,7 @@ A value indicates if the collapse body will be initialized visible or hidden. Sh ### multi -A value indicates if an `abp-button` or `a` can show and hide multiple collapse body element. Should be one of the following values: +A value indicates if an `abp-collapse-body` can be shown or hidden by an element that can show/hide multiple collapse bodies. Basically, this attribute adds "multi-collapse" class to `abp-collapse-body`. Should be one of the following values: * `false` (default value) * `true` From d420980f3e250b92549825ae454a253fc9cb8c74 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Mon, 23 Mar 2020 15:10:36 +0300 Subject: [PATCH 026/189] removed wrong alert sample --- docs/en/UI/AspNetCore/Tag-Helpers/Modals.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md b/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md index 560c4374f0..9cf1258373 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Modals.md @@ -33,14 +33,6 @@ A value indicates the positioning of the modal. Should be one of the following v * `false` (default value) * `true` -Example: - -````xml - - A simple warning alert—check it out! - -```` - ### size A value indicates the size of the modal. Should be one of the following values: From 5d2db4beb438135796ce4587ac97a70d0b31e600 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 23 Mar 2020 16:23:56 +0300 Subject: [PATCH 027/189] docs: add how to make HTTP requests using RestService --- docs/en/UI/Angular/Rest-Service.md | 206 +++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 docs/en/UI/Angular/Rest-Service.md diff --git a/docs/en/UI/Angular/Rest-Service.md b/docs/en/UI/Angular/Rest-Service.md new file mode 100644 index 0000000000..f932face22 --- /dev/null +++ b/docs/en/UI/Angular/Rest-Service.md @@ -0,0 +1,206 @@ +# How to Make HTTP Requests + + + +## About HttpClient + +Angular has the amazing [HttpClient](https://angular.io/guide/http) for communication with backend services. It is a layer on top and a simplified representation of [XMLHttpRequest Web API](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest). It also is the recommended agent by Angular for any HTTP request. There is nothing wrong with using the `HttpClient` in your ABP project. + +However, `HttpClient` leaves error handling to the caller (method). In other words, HTTP errors are handled manually and by hooking into the observer of the `Observable` returned. + +```js +getConfig() { + this.http.get(this.configUrl).subscribe( + config => this.updateConfig(config), + error => { + // Handle error here + }, + ); +} +``` + +Although clear and flexible, handling errors this way is repetitive work, even when error processing is delegated to the store or any other injectable. + +An `HttpInterceptor` is able to catch `HttpErrorResponse`  and can be used for a centralized error handling. Nevertheless, cases where default error handler, therefore the interceptor, must be disabled require additional work and comprehension of Angular internals. Check [this issue](https://github.com/angular/angular/issues/20203) for details. + + + +## RestService + +ABP core module has a utility service for HTTP requests: `RestService`. Unless explicitly configured otherwise, it catches HTTP errors and dispatches a `RestOccurError` action. This action is then captured by the `ErrorHandler` introduced by the `ThemeSharedModule`. Since you should already import this module in your app, when the `RestService` is used, all HTTP errors get automatically handled by deafult. + + + +### Getting Started with RestService + +In order to use the `RestService`, you must inject it in your class as a dependency. + +```js +import { RestService } from '@abp/ng.core'; + +@Injectable({ + /* class metadata here */ +}) +class DemoService { + constructor(private rest: RestService) {} +} +``` + +You do not have to provide the RestService` at module or component/directive level, because it is already **provided in root**. + + + +### How to Make a Request with RestService + +You can use the `request` method of the `RestService` is for HTTP requests. Here is an example: + +```js +getFoo(id: number) { + const request: Rest.Request = { + method: 'GET', + url: '/api/some/path/to/foo/' + id, + }; + + return this.rest.request(request); +} +``` + + + +The `request` method always returns an `Observable`. Therefore you can do the following wherever you use `getFoo` method: + +```js +doSomethingWithFoo(id: number) { + this.demoService.getFoo(id).subscribe( + foo => { + // Do something with foo. + } + ) +} +``` + + + +**You do not have to worry about unsubscription.** The `RestService` uses `HttpClient` behind the scenes, so every observable it returns is a finite observable, i.e. it closes subscriptions automatically upon success or error. + + + +As you see, `request` method gets a request options object with `Rest.Request` type. This generic type expects the interface of the request body. You may pass `null` when there is no body, like in a `GET` or a `DELETE` request. Here is an example where there is one: + +```js +postFoo(body: Foo) { + const request: Rest.Request = { + method: 'POST', + url: '/api/some/path/to/foo', + body + }; + + return this.rest.request(request); +} +``` + + + +You may [check here](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/rest.ts#L23) for complete `Rest.Request` type, which has only a few chages compared to [HttpRequest](https://angular.io/api/common/http/HttpRequest) class in Angular. + + + +### How to Disable Default Error Handler of RestService + +The `request` method, used with defaults, always handles errors. Let's see how you can change that behavior and handle errors yourself: + +```js +deleteFoo(id: number) { + const request: Rest.Request = { + method: 'DELETE', + url: '/api/some/path/to/foo/' + id, + }; + + return this.rest.request(request, { skipHandleError: true }); +} +``` + + + +`skipHandleError` config option, when set to `true`, disables the error handler and the returned observable starts throwing an error that you can catch in your subscription. + +```js +removeFooFromList(id: number) { + this.demoService.deleteFoo(id).subscribe( + foo => { + // Do something with foo. + }, + error => { + // Do something with error. + } + ) +} +``` + + + +### How to Get a Specific API Endpoint From Application Config + +Another nice config option that `request` method receives is `apiName` (available as of v2.4), which can be used to get a specific module endpoint from application configuration. + + + +```js +putFoo(body: Foo) { + const request: Rest.Request = { + method: 'PUT', + url: '/' + id, + body + }; + + return this.rest.request(request, {apiName: 'foo'}); +} +``` + + + +`putFoo` above will request `https://localhost:44305/api/some/path/to/foo/{id}` as long as the environment variables are as follows: + +```js +// environment.ts + +export const environment = { + apis: { + default: { + url: 'https://localhost:44305', + }, + foo: { + url: 'https://localhost:44305/api/some/path/to/foo', + }, + }, + + /* rest of the environment variables here */ +} +``` + + + +### How to Observe Response Object or HTTP Events Instead of Body + +`RestService` assumes you are generally interested in the body of a response and, by default, sets `observe` property as `'body'`. However, there may be times you are rather interested in something else, such as a custom proprietary header. For that, the `request` method receives `observe` property in its config object. + +```js +getSomeCustomHeaderValue() { + const request: Rest.Request = { + method: 'GET', + url: '/api/some/path/that/sends/some-custom-header', + }; + + return this.rest.request>( + request, + {observe: Rest.Observe.Response}, + ).pipe( + map(response => response.headers.get('Some-Custom-Header')) + ); +} +``` + + + +You may find `Rest.Observe` enum [here](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/rest.ts#L10). + From ecb930dda264a26495e87d1bbfa748d0f9ba8241 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 23 Mar 2020 17:35:18 +0300 Subject: [PATCH 028/189] build(npm): add ts-toolbelt to devDependencies --- npm/ng-packs/package.json | 1 + npm/ng-packs/yarn.lock | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index c3e26038f0..37621afb49 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -83,6 +83,7 @@ "snq": "^1.0.3", "symlink-manager": "^1.4.2", "ts-node": "~7.0.0", + "ts-toolbelt": "^6.3.6", "tsickle": "^0.37.0", "tslint": "~5.20.0", "typescript": "~3.5.3", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index db911bfb55..8c2e4c37d2 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -11685,6 +11685,11 @@ ts-node@~7.0.0: source-map-support "^0.5.6" yn "^2.0.0" +ts-toolbelt@^6.3.6: + version "6.3.6" + resolved "https://registry.yarnpkg.com/ts-toolbelt/-/ts-toolbelt-6.3.6.tgz#2bde29106c013ed520c32f30e1248daf8fd4f5f9" + integrity sha512-eVzym+LyQodOCfyVyQDQ6FGYbO2Xf9Nc4dGLRKlKSUpAs+8qQWHG+grDiA3ciEuNPNZ0qJnNIYkdqBW1rCWuUA== + tsickle@^0.37.0: version "0.37.1" resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.37.1.tgz#2f8a87c1b15766e866457bd06fb6c0e0d84eed09" From 007421aae13446c63bd2b23f0f3e9f9d535bc61c Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 23 Mar 2020 18:55:29 +0300 Subject: [PATCH 029/189] feat(core): use Object.Paths in byDeep method of TrackByService --- .../core/src/lib/services/track-by.service.ts | 9 +++++---- .../core/src/lib/tests/track-by.service.spec.ts | 16 +++++----------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts b/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts index ca2b92db5f..4f7cc6f7c8 100644 --- a/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts @@ -1,18 +1,19 @@ import { Injectable, TrackByFunction } from '@angular/core'; +import { O } from 'ts-toolbelt'; @Injectable({ providedIn: 'root', }) export class TrackByService { by(key: keyof T): TrackByFunction { - return ({}, item) => item[key]; + return (_, item) => item[key]; } - byDeep(...keys: (string | number)[]): TrackByFunction { - return ({}, item) => keys.reduce((acc, key) => acc[key], item); + byDeep(...keys: T extends object ? O.Paths : never): TrackByFunction { + return (_, item) => keys.reduce((acc, key) => acc[key], item); } bySelf(): TrackByFunction { - return ({}, item) => item; + return (_, item) => item; } } diff --git a/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts index 19868e8ad5..c1125d2930 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts @@ -11,17 +11,11 @@ describe('TrackByService', () => { describe('#byDeep', () => { it('should return a function which tracks a deeply-nested property', () => { - expect( - service.byDeep( - 'a', - 'b', - 'c', - 1, - 'x', - )(284, { - a: { b: { c: [{ x: 1035 }, { x: 1036 }, { x: 1037 }] } }, - }), - ).toBe(1036); + const obj = { + a: { b: { c: { x: 1036 } } }, + }; + + expect(service.byDeep('a', 'b', 'c', 'x')(284, obj)).toBe(1036); }); }); From 25204e5d34d4850514e417273e57b984d3156659 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 23 Mar 2020 20:00:10 +0300 Subject: [PATCH 030/189] refactor: remove bySelf method --- .../packages/core/src/lib/services/track-by.service.ts | 4 ---- .../packages/core/src/lib/tests/track-by.service.spec.ts | 6 ------ 2 files changed, 10 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts b/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts index 4f7cc6f7c8..9576a287f2 100644 --- a/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts @@ -12,8 +12,4 @@ export class TrackByService { byDeep(...keys: T extends object ? O.Paths : never): TrackByFunction { return (_, item) => keys.reduce((acc, key) => acc[key], item); } - - bySelf(): TrackByFunction { - return (_, item) => item; - } } diff --git a/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts index c1125d2930..377f129ff5 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/track-by.service.spec.ts @@ -18,10 +18,4 @@ describe('TrackByService', () => { expect(service.byDeep('a', 'b', 'c', 'x')(284, obj)).toBe(1036); }); }); - - describe('#bySelf', () => { - it('should return a function which tracks the item', () => { - expect(service.bySelf()(284, 'X')).toBe('X'); - }); - }); }); From 15b93c3199084f92a6a337aa3909861a97e4a398 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 23 Mar 2020 20:08:08 +0300 Subject: [PATCH 031/189] feat(core): export trackBy and trackByDeep separately --- .../core/src/lib/services/track-by.service.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts b/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts index 9576a287f2..aa72942ec0 100644 --- a/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/track-by.service.ts @@ -1,15 +1,17 @@ import { Injectable, TrackByFunction } from '@angular/core'; import { O } from 'ts-toolbelt'; +export const trackBy = (key: keyof T): TrackByFunction => (_, item) => item[key]; + +export const trackByDeep = ( + ...keys: T extends object ? O.Paths : never +): TrackByFunction => (_, item) => keys.reduce((acc, key) => acc[key], item); + @Injectable({ providedIn: 'root', }) export class TrackByService { - by(key: keyof T): TrackByFunction { - return (_, item) => item[key]; - } + by = trackBy; - byDeep(...keys: T extends object ? O.Paths : never): TrackByFunction { - return (_, item) => keys.reduce((acc, key) => acc[key], item); - } + byDeep = trackByDeep; } From 56295b730704121c2c6734920136e7e167569494 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Mon, 23 Mar 2020 21:08:44 +0300 Subject: [PATCH 032/189] docs(core): add how to create TrackByFunction using TrackByService --- docs/en/UI/Angular/Track-By-Service.md | 114 +++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 docs/en/UI/Angular/Track-By-Service.md diff --git a/docs/en/UI/Angular/Track-By-Service.md b/docs/en/UI/Angular/Track-By-Service.md new file mode 100644 index 0000000000..4b8d2d8a1e --- /dev/null +++ b/docs/en/UI/Angular/Track-By-Service.md @@ -0,0 +1,114 @@ +# Easy TrackByFunction Implementation + +`TrackByService` is a utility service to provide an easy implementation for one of the most frequent needs in Angular templates: `TrackByFunction`. Please see [this page in Angular docs](https://angular.io/guide/template-syntax#ngfor-with-trackby) for its purpose. + + + +## Getting Started + +You do not have to provide the `TrackByService` at module or component level, because it is already **provided in root**. You can inject and start using it immediately in your components. For better type support, you may pass in the type of the iterated item to it. + +```js +import { TrackByService } from '@abp/ng.core'; + +@Component({ + /* class metadata here */ +}) +class DemoComponent { + list: Item[]; + + constructor(public readonly track: TrackByService) {} +} +``` + + + +> Noticed `track` is `public` and `readonly`? That is because we will see some examples where methods of `TrackByService` instance are directly called in the component's template. That may be considered as an anti-pattern, but it has its own advantage, especially when component inheritance is leveraged. You can always use public component properties instead. + + + +**The members are also exported as separate functions.** If you do not want to inject `TrackByService`, you can always import and use those functions directly in your classes. + + + +## Usage + +There are two approaches available. + +1. You may inject `TrackByService` to your component and use its members. +2. You may use exported higher-order functions directly on component properties. + + + +### How to Track Items by a Key + +You can use `by` to get a `TrackByFunction` that tracks the iterated object based on one of its keys. For type support, you may pass in the type of the iterated item to it. + +```html + + +

+``` + + + +`by` is exported as a stand-alone function and is named `trackBy`. + +```js +import { trackBy } from "@abp/ng.core"; + +@Component({ + template: ` +
+ {{ item.name }} +
+ `, +}) +class DemoComponent { + list: Item[]; + + trackById = trackBy('id'); +} +``` + + + +### How to Track by a Deeply Nested Key + +You can use `byDeep` to get a `TrackByFunction` that tracks the iterated object based on a deeply nested key. For type support, you may pass in the type of the iterated item to it. + +```html + + +
+ {{ item.tenant.name }} +
+``` + + + +`byDeep` is exported as a stand-alone function and is named `trackByDeep`. + +```js +import { trackByDeep } from "@abp/ng.core"; + +@Component({ + template: ` +
+ {{ item.name }} +
+ `, +}) +class DemoComponent { + list: Item[]; + + trackByTenantAccountId = trackByDeep('tenant', 'account', 'id'); +} +``` + From 9defbd82b9e71a1d1a44b1f88501acf860d3ccf3 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 24 Mar 2020 09:12:12 +0300 Subject: [PATCH 033/189] docs: rename http request document as Http-Requests.md --- docs/en/UI/Angular/{Rest-Service.md => Http-Requests.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/en/UI/Angular/{Rest-Service.md => Http-Requests.md} (100%) diff --git a/docs/en/UI/Angular/Rest-Service.md b/docs/en/UI/Angular/Http-Requests.md similarity index 100% rename from docs/en/UI/Angular/Rest-Service.md rename to docs/en/UI/Angular/Http-Requests.md From 09cb5ec600c3597742553c39cfa62c34d0c06093 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 09:41:41 +0300 Subject: [PATCH 034/189] docs: add what's next to Http-Requests.md --- docs/en/UI/Angular/Http-Requests.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/en/UI/Angular/Http-Requests.md b/docs/en/UI/Angular/Http-Requests.md index f932face22..71878c8045 100644 --- a/docs/en/UI/Angular/Http-Requests.md +++ b/docs/en/UI/Angular/Http-Requests.md @@ -46,7 +46,7 @@ class DemoService { } ``` -You do not have to provide the RestService` at module or component/directive level, because it is already **provided in root**. +You do not have to provide the `RestService` at module or component/directive level, because it is already **provided in root**. @@ -146,7 +146,7 @@ Another nice config option that `request` method receives is `apiName` (availabl ```js -putFoo(body: Foo) { +putFoo(body: Foo, id: string) { const request: Rest.Request = { method: 'PUT', url: '/' + id, @@ -204,3 +204,6 @@ getSomeCustomHeaderValue() { You may find `Rest.Observe` enum [here](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/rest.ts#L10). +## What's Next? + +* [Localization](./Localization.md) \ No newline at end of file From 4a7bd00eed4f324059dd382aa291cdfbd3253b55 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 09:41:57 +0300 Subject: [PATCH 035/189] docs: add what's next to Localization.md --- docs/en/UI/Angular/Localization.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/en/UI/Angular/Localization.md b/docs/en/UI/Angular/Localization.md index 01394a3fea..d627f466ba 100644 --- a/docs/en/UI/Angular/Localization.md +++ b/docs/en/UI/Angular/Localization.md @@ -133,4 +133,8 @@ Localization resources are stored in the `localization` property of `ConfigState ## See Also -* [Localization in ASP.NET Core](../../Localization.md) \ No newline at end of file +* [Localization in ASP.NET Core](../../Localization.md) + +## What's Next? + +* [Permission Management](./Permission-Management.md) \ No newline at end of file From b626a9170f86069cc01e1ad14954c1d2327af57f Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 09:42:24 +0300 Subject: [PATCH 036/189] docs: add Http Requests to navigation as a menu item --- docs/en/docs-nav.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index 5c2c3a8e64..a96fb911d2 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -312,6 +312,10 @@ { "text": "Angular", "items": [ + { + "text": "HTTP Requests", + "path": "UI/Angular/HTTP-Requests.md" + }, { "text": "Localization", "path": "UI/Angular/Localization.md" From 6e86f0385f602a58dec21c108ea6a329b91d8dff Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 09:53:44 +0300 Subject: [PATCH 037/189] docs: remove rest-service.md and updated the service proxies documentation --- docs/en/UI/Angular/Rest-Service.md | 3 --- docs/en/UI/Angular/Service-Proxies.md | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) delete mode 100644 docs/en/UI/Angular/Rest-Service.md diff --git a/docs/en/UI/Angular/Rest-Service.md b/docs/en/UI/Angular/Rest-Service.md deleted file mode 100644 index d817cab3c6..0000000000 --- a/docs/en/UI/Angular/Rest-Service.md +++ /dev/null @@ -1,3 +0,0 @@ -## Rest Service - -TODO \ No newline at end of file diff --git a/docs/en/UI/Angular/Service-Proxies.md b/docs/en/UI/Angular/Service-Proxies.md index 56d640ec54..b1cd9ad500 100644 --- a/docs/en/UI/Angular/Service-Proxies.md +++ b/docs/en/UI/Angular/Service-Proxies.md @@ -25,9 +25,9 @@ The files generated with the `--module all` option like below: ### Services -Each generated service matches a back-end controller. The services methods call back-end APIs via [RestService](./Rest-Service.md). +Each generated service matches a back-end controller. The services methods call back-end APIs via [RestService](./HTTP-Requests.md#restservice). - +A variable named `apiName` (available as of v2.4) is defined in each service. `apiName` matches the module's RemoteServiceName. This variable passes to the `RestService` as a parameter at each request. If there is no microservice API defined in the environment, `RestService` uses the default. See [getting a specific API endpoint from application config](HTTP-Requests#how-to-get-a-specific-api-endpoint-from-application-config) The `providedIn` property of the services is defined as `'root'`. Therefore no need to add a service as a provider to a module. You can use a service by injecting it into a constructor as shown below: @@ -64,4 +64,4 @@ Initial values ​​can optionally be passed to each class constructor. ## What's Next? -* [Localization](./Localization.md) \ No newline at end of file +* [Http Requests](./Http-Requests.md) \ No newline at end of file From 6dda74a8dd3301ef430090161ac5373c9fde693b Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 09:56:17 +0300 Subject: [PATCH 038/189] refactor(core): take precaution for type error in config state --- npm/ng-packs/packages/core/src/lib/states/config.state.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/states/config.state.ts b/npm/ng-packs/packages/core/src/lib/states/config.state.ts index 5269946391..8ce206dd76 100644 --- a/npm/ng-packs/packages/core/src/lib/states/config.state.ts +++ b/npm/ng-packs/packages/core/src/lib/states/config.state.ts @@ -262,7 +262,8 @@ export class ConfigState { route.url = `/${route.path}`; } - route.order = route.order || route.order === 0 ? route.order : parent.children.length; + route.children = route.children || []; + route.order = route.order || route.order === 0 ? route.order : (parent.children || []).length; parent.children = [...(parent.children || []), route].sort((a, b) => a.order - b.order); flattedRoutes[index] = parent; From 9309d05e08e87d5ebee7e3a118ba1a07132f532d Mon Sep 17 00:00:00 2001 From: John Barrett <40014477+274188A@users.noreply.github.com> Date: Tue, 24 Mar 2020 15:13:13 +0800 Subject: [PATCH 039/189] grammar grammar --- docs/en/Multi-Tenancy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Multi-Tenancy.md b/docs/en/Multi-Tenancy.md index 1e1e4e9f81..27fe70086c 100644 --- a/docs/en/Multi-Tenancy.md +++ b/docs/en/Multi-Tenancy.md @@ -4,7 +4,7 @@ ABP Multi-tenancy module provides base functionality to create multi tenant appl Wikipedia [defines](https://en.wikipedia.org/wiki/Multitenancy) multi-tenancy as like that: -> Software **Multi-tenancy** refers to a software **architecture** in which a **single instance** of a software runs on a server and serves **multiple tenants**. A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a **dedicated share of the instance including its data**, configuration, user management, tenant individual functionality and non-functional properties. Multi-tenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants. +> Software **Multi-tenancy** refers to a software **architecture** in which a **single instance** of software runs on a server and serves **multiple tenants**. A tenant is a group of users who share a common access with specific privileges to the software instance. With a multitenant architecture, a software application is designed to provide every tenant a **dedicated share of the instance including its data**, configuration, user management, tenant individual functionality and non-functional properties. Multi-tenancy contrasts with multi-instance architectures, where separate software instances operate on behalf of different tenants. ### Volo.Abp.MultiTenancy Package From 42367498c8dc9fb48d83489f6e65d0b9211a32eb Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 10:25:20 +0300 Subject: [PATCH 040/189] test(core): fix config-state testing error --- npm/ng-packs/packages/core/src/lib/tests/config.state.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/npm/ng-packs/packages/core/src/lib/tests/config.state.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/config.state.spec.ts index 07baed4c14..1ff9ad817e 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/config.state.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/config.state.spec.ts @@ -375,6 +375,7 @@ describe('ConfigState', () => { describe('#AddRoute', () => { const newRoute = { name: 'My new page', + children: [], iconClass: 'fa fa-dashboard', path: 'page', invisible: false, From 9da3a6b99b942e95160226065021080559814def Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 10:25:30 +0300 Subject: [PATCH 041/189] chore: update NPM versions --- npm/ng-packs/.vscode/settings.json | 1 + npm/ng-packs/package.json | 26 +++--- npm/ng-packs/yarn.lock | 132 ++++++++++++++--------------- 3 files changed, 80 insertions(+), 79 deletions(-) diff --git a/npm/ng-packs/.vscode/settings.json b/npm/ng-packs/.vscode/settings.json index 37d9a1e403..9c2678df08 100644 --- a/npm/ng-packs/.vscode/settings.json +++ b/npm/ng-packs/.vscode/settings.json @@ -6,6 +6,7 @@ "typescript.tsdk": "../node_modules/typescript/lib", "workbench.colorCustomizations": { "activityBar.background": "#258ecd", + "activityBar.activeBackground": "#258ecd", "activityBar.activeBorder": "#f0aed7", "activityBar.foreground": "#e7e7e7", "activityBar.inactiveForeground": "#e7e7e799", diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index 37621afb49..a4a3045b0a 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -21,19 +21,19 @@ "generate:changelog": "conventional-changelog -p angular -i CHANGELOG.md -s" }, "devDependencies": { - "@abp/ng.account": "~2.2.0", - "@abp/ng.account.config": "~2.2.0", - "@abp/ng.core": "~2.2.0", - "@abp/ng.feature-management": "~2.2.0", - "@abp/ng.identity": "~2.2.0", - "@abp/ng.identity.config": "~2.2.0", - "@abp/ng.permission-management": "~2.2.0", - "@abp/ng.setting-management": "~2.2.0", - "@abp/ng.setting-management.config": "~2.2.0", - "@abp/ng.tenant-management": "~2.2.0", - "@abp/ng.tenant-management.config": "~2.2.0", - "@abp/ng.theme.basic": "~2.2.0", - "@abp/ng.theme.shared": "~2.2.0", + "@abp/ng.account": "~2.3.0", + "@abp/ng.account.config": "~2.3.0", + "@abp/ng.core": "^2.3.0", + "@abp/ng.feature-management": "^2.3.0", + "@abp/ng.identity": "~2.3.0", + "@abp/ng.identity.config": "~2.3.0", + "@abp/ng.permission-management": "^2.3.0", + "@abp/ng.setting-management": "~2.3.0", + "@abp/ng.setting-management.config": "~2.3.0", + "@abp/ng.tenant-management": "~2.3.0", + "@abp/ng.tenant-management.config": "~2.3.0", + "@abp/ng.theme.basic": "~2.3.0", + "@abp/ng.theme.shared": "^2.3.0", "@angular-builders/jest": "^8.2.0", "@angular-devkit/build-angular": "~0.803.21", "@angular-devkit/build-ng-packagr": "~0.803.21", diff --git a/npm/ng-packs/yarn.lock b/npm/ng-packs/yarn.lock index 8c2e4c37d2..a9d0291af1 100644 --- a/npm/ng-packs/yarn.lock +++ b/npm/ng-packs/yarn.lock @@ -2,26 +2,26 @@ # yarn lockfile v1 -"@abp/ng.account.config@^2.2.0", "@abp/ng.account.config@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.account.config/-/ng.account.config-2.2.0.tgz#420396fc55eadd9a5c179e87075a51437ebc964c" - integrity sha512-5BpxFnXCeCDR+m3qGMKn8rSMGwBb4mkwtejVAJXCVYoMXL8x2J9uRgDf9fkdudqpls+BIgB8BX1tRyJiY+Bg8Q== +"@abp/ng.account.config@^2.3.0", "@abp/ng.account.config@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.account.config/-/ng.account.config-2.3.0.tgz#28d65e2eb889d8b44fc726edbed7509214e8034a" + integrity sha512-Vg4+8PvGfgUC+pFtPIS53ZekJM+O4JZ8wGPGaZ/ySLpk2oSfzC/5RFS2rKq3cmySeRCJunmQinCAlBCm5zir8A== dependencies: tslib "^1.9.0" -"@abp/ng.account@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-2.2.0.tgz#3a200a46f83c36ae89a6724a6a2226a5f846641b" - integrity sha512-OwTOxXDI3BJ1MrlR6WtvDmNIkqi1OCWlq7MvUhuFPVmIIUI3OjxHNASk1NfWMSlu6amXDxuFEey4ItrMKnAJog== +"@abp/ng.account@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.account/-/ng.account-2.3.0.tgz#9ca2a564c177c43b53f69f141405914baefbc7b2" + integrity sha512-kJCek8woGGEC1WTgo75Qr2ucyD5VV1nqqnkw8UMJ96/pqASpBJHczGTL8R4ug961i4vexKDnMbiv0SmfMlBDig== dependencies: - "@abp/ng.account.config" "^2.2.0" - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.account.config" "^2.3.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.core@^2.2.0", "@abp/ng.core@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-2.2.0.tgz#a553e845f7bc43838704eb15d8684869dfcb053b" - integrity sha512-HtyHJYPY6kKqySt/afgFT5j6yaN7Bx4MMvIGWHqFqZsQChWceagLk5SBFTOjCE1FgsewX2a7OT452bKjgsWsrg== +"@abp/ng.core@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.core/-/ng.core-2.3.0.tgz#96bad951da07e589f11a0345171e1a142463671e" + integrity sha512-6SsgcRJQWjXvyEZ7VO2ekOoVmKkFB17vJgTvQLiyB+j2t9guAo3LPDcMGGKNum/oInkiYczf8MY7sculrElyKQ== dependencies: "@angular/localize" "~9.0.2" "@ngxs/router-plugin" "^3.6.2" @@ -33,86 +33,86 @@ snq "^1.0.3" tslib "^1.9.0" -"@abp/ng.feature-management@^2.2.0", "@abp/ng.feature-management@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-2.2.0.tgz#04f959ddb62a0abd99a84fb4e6ec935a796418d4" - integrity sha512-Cw0GRi+6LX5oKDwEvJJyUoh7M4hvaUE5TsuP1E3Hicg/1mMSyUDXVrLBOvAeWWolyfFTpFKLppAvoEEMpUt2eg== +"@abp/ng.feature-management@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.feature-management/-/ng.feature-management-2.3.0.tgz#91172fa9f308b3a792a2bf1e762e24560556f412" + integrity sha512-ShytiV1SC3PwP4Hs8Ss3bk2UAZBXteHKWcrIhAvqtWsOQ2aql6e7t+FutRA3wtUuRdX6PTrMRXbMRvhCwGZUKQ== dependencies: - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.identity.config@^2.2.0", "@abp/ng.identity.config@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.identity.config/-/ng.identity.config-2.2.0.tgz#ac050ed632624c490d8957a18606622637d1d6f3" - integrity sha512-sHRG0iRFrGtF2pNnKcjBaeupg39V8easzUFPU42/SVPi0XyAumrOZRbKkN2CBl0WYedqARTZxE5/nejRMXX4Fg== +"@abp/ng.identity.config@^2.3.0", "@abp/ng.identity.config@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.identity.config/-/ng.identity.config-2.3.0.tgz#e9f4904d60f94cc01b3254e0221d7cdb2274aa3b" + integrity sha512-bqCaPHCwaHUfAfNfFskGTJHGvv+hPK9Tmm7PouVa884AmeQs2j0Gwl3o93YHK2VwXENV09qb01feXapSVPsmTw== dependencies: tslib "^1.9.0" -"@abp/ng.identity@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-2.2.0.tgz#1cc7ffa4e2aae462d8ce2399f94cf5ad047fefae" - integrity sha512-G/hrMg/PaN0tA871D52AuKlUhsLWfWSblK0XqQiRmMp/ozsEYSvAV91n/pEScm7qx0RF01K0J5K5V8Cjb4LTyA== +"@abp/ng.identity@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.identity/-/ng.identity-2.3.0.tgz#c973f12f5490b1d29c80f510540b18343f998b8d" + integrity sha512-vBLLxCax7MoHilakpW9XMRFGUXcdMM0syiz0PtkgKmYADIQIQ9AzcfwslK2D6wwy447s6NIoGnThtfbshoRtLw== dependencies: - "@abp/ng.identity.config" "^2.2.0" - "@abp/ng.permission-management" "^2.2.0" - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.identity.config" "^2.3.0" + "@abp/ng.permission-management" "^2.3.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.permission-management@^2.2.0", "@abp/ng.permission-management@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-2.2.0.tgz#56bece037aa094400f8d5585db0bfd5718437ae0" - integrity sha512-OeUZzZV+2TTWOhmpwFTvar9/4IpKz5EhI/6uabu3pOtIsU2Ms2OBbjwVUSKbhLT7e0+z5MM1nPCDoXIlYv22wA== +"@abp/ng.permission-management@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.permission-management/-/ng.permission-management-2.3.0.tgz#16599a2e1583c9d6769edb1dc9b78a45b75b7402" + integrity sha512-vJSfcmXCXpBHMjeRb/0QoKlAcvpCQ/qS2quHFUr23nriXIeNxgEdCVHkTBZU8FMxfyTfwwrFRzF2oxn33gubbg== dependencies: - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.setting-management.config@^2.2.0", "@abp/ng.setting-management.config@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management.config/-/ng.setting-management.config-2.2.0.tgz#31cf94a785fc2d5c3f1bcfe2c79afc0f1ab419ee" - integrity sha512-vZhBvKFZ6puWwujkzEEhqyQiMKdTmAeJjSxlUPRyIuwowrZhPnUk1r0ghyOLTC5fC1TDaUXF1mZ2UsBFMDvuiw== +"@abp/ng.setting-management.config@^2.3.0", "@abp/ng.setting-management.config@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management.config/-/ng.setting-management.config-2.3.0.tgz#80b9ebc659c34be4c4c45cc6f2fe2b593f491aab" + integrity sha512-nj6Hl8hlzrGJFJZo4d9DWQtf1PCSFnXup/3ajqMOCPPE+oBItY3aNY05jDyGgdr2wEdyWo/u9Invy3Jsvq8itQ== dependencies: tslib "^1.9.0" -"@abp/ng.setting-management@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-2.2.0.tgz#e1c976bf69bbfaa452489b8968b8669c3fba7710" - integrity sha512-LL6CUi0qpS0+9kPz/T0n1U+Kpu9gwI49+d/+xVDG+lIziGqukgwgoUwlEv+Lk0ak+RC5noLurvvJaaKd3l3mPw== +"@abp/ng.setting-management@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.setting-management/-/ng.setting-management-2.3.0.tgz#478c603f67416df763228bc958b6ea05e7d13dd7" + integrity sha512-xJk09NdpXeg3/KezvKl+h0B4T08Hy1SofOATQpVTrE4TIsFxyXKmasMcSY4i/3+wwE1umH+6TZJwPE+pXTu9Ng== dependencies: - "@abp/ng.setting-management.config" "^2.2.0" - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.setting-management.config" "^2.3.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.tenant-management.config@^2.2.0", "@abp/ng.tenant-management.config@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management.config/-/ng.tenant-management.config-2.2.0.tgz#16d87f31ec069e1f3a8351ef3be9a05a3002ed26" - integrity sha512-lfW9lGERn9PBIRseJajQ0GSxo1+wfRxO7Ic/lSSPxhUbsmwg6afquYTcGiU0d+4QQOBY47ga3n0IVrNqWq1pmw== +"@abp/ng.tenant-management.config@^2.3.0", "@abp/ng.tenant-management.config@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management.config/-/ng.tenant-management.config-2.3.0.tgz#8501a3a53f1abac8a65a87782752afb2ba648bb1" + integrity sha512-gGqg7rZd5X37z9glYF2lSiFpJ3Lyi1NdqHnaxdCTui+3/weMo/5RKlf+ilUAPqR5YAMVSLi4mBYYsuShWEBBIQ== dependencies: tslib "^1.9.0" -"@abp/ng.tenant-management@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-2.2.0.tgz#0ce498eaf9f65ef0255fc23949a47f8ae36cf5c8" - integrity sha512-v9Y5F9fm2EXYteCWKI8QODN4ETmSdh6K7gC5Y3+/N+QaUAod8JxFNX0EIXzFGnSLbiZ0O1xA/TRJruQTv1m3SA== +"@abp/ng.tenant-management@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.tenant-management/-/ng.tenant-management-2.3.0.tgz#5ec092ad9c597d4aa9f2f849fc12e955d2d24696" + integrity sha512-LyJaXuzgZr2tfFPknuGz1spOzfxfaEhPuQ6zHBOhVfQ6KtMBeagsQQoEiLJMtcygR0MRox0kzmUiyTKm4H5DoA== dependencies: - "@abp/ng.feature-management" "^2.2.0" - "@abp/ng.tenant-management.config" "^2.2.0" - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.feature-management" "^2.3.0" + "@abp/ng.tenant-management.config" "^2.3.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.theme.basic@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-2.2.0.tgz#7a086a27daa3bec16962dd62dfb2f39a1538e82f" - integrity sha512-fpdDjjhEQZtaZvFkVi5uhqZoYyrxCWJeQgGFvLS36TqYqvJVyoMeJBlVw0CgbY3F+u5V/GmZSVxvZAAJDpUYhg== +"@abp/ng.theme.basic@~2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.basic/-/ng.theme.basic-2.3.0.tgz#e5857864ae4c3274a57cc785b06cccd0ff3515a8" + integrity sha512-LuAlKqmqEFUUwI/ruB6aO1rhfsCD19Pt7PCE3M+vr/KvlYAKb89K1U8nphIfMV8PCz9IU07BwvTn/T2qIt39HQ== dependencies: - "@abp/ng.theme.shared" "^2.2.0" + "@abp/ng.theme.shared" "^2.3.0" tslib "^1.9.0" -"@abp/ng.theme.shared@^2.2.0", "@abp/ng.theme.shared@~2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-2.2.0.tgz#438f77498df3e2f25a1ecf9adb77a9ee5a71d2c5" - integrity sha512-w7TnDbdHpOFcT12wt/9nZDH9PkyZdTP6W+tJIGeH6zOgWC8V4MDX8Ulc9e/ZvQ8u0qRLOEmk3aE5odFQUHSlJw== +"@abp/ng.theme.shared@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@abp/ng.theme.shared/-/ng.theme.shared-2.3.0.tgz#5b13b8e170fb0c2a4afca34434bd455ee8dfb9d6" + integrity sha512-keYnD17K8QkdSLqBbsATfeh7KwKNoUj/XsHZO8hawE3OfRuy4qYY9xghGFZUUqdIE5kF6gKlLKj4ZTZmuCvOmQ== dependencies: - "@abp/ng.core" "^2.2.0" + "@abp/ng.core" "^2.3.0" "@fortawesome/fontawesome-free" "^5.12.1" "@ng-bootstrap/ng-bootstrap" "^5.3.0" "@ngx-validate/core" "^0.0.7" From a709c4ff8b30f1bc067d2065418da90b2b20fb9e Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 10:42:06 +0300 Subject: [PATCH 042/189] docs: escape curly braces --- docs/en/UI/Angular/Track-By-Service.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/en/UI/Angular/Track-By-Service.md b/docs/en/UI/Angular/Track-By-Service.md index 4b8d2d8a1e..4506f77e47 100644 --- a/docs/en/UI/Angular/Track-By-Service.md +++ b/docs/en/UI/Angular/Track-By-Service.md @@ -47,7 +47,7 @@ You can use `by` to get a `TrackByFunction` that tracks the iterated object base ```html -
{{ item.name }}
+
{%{{{ item.name }}}%}
``` @@ -62,7 +62,7 @@ import { trackBy } from "@abp/ng.core";
- {{ item.name }} + {%{{{ item.name }}}%}
`, }) @@ -85,7 +85,7 @@ You can use `byDeep` to get a `TrackByFunction` that tracks the iterated object
- {{ item.tenant.name }} + {%{{{ item.tenant.name }}}%}
``` @@ -101,7 +101,7 @@ import { trackByDeep } from "@abp/ng.core";
- {{ item.name }} + {%{{{ item.name }}}%}
`, }) From 90c37f2019dfa3357893f49e9ffa4fd4ea50f428 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 10:42:20 +0300 Subject: [PATCH 043/189] docs: add what's next to custom setting page document --- docs/en/UI/Angular/Custom-Setting-Page.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/UI/Angular/Custom-Setting-Page.md b/docs/en/UI/Angular/Custom-Setting-Page.md index 7c51cf2cca..6aa5d8a3cc 100644 --- a/docs/en/UI/Angular/Custom-Setting-Page.md +++ b/docs/en/UI/Angular/Custom-Setting-Page.md @@ -40,3 +40,7 @@ ngOnInit() { Navigate to `/setting-management` route to see the changes: ![Custom Settings Tab](./images/custom-settings.png) + +## What's Next? + +- [TrackByService](./Track-By-Service.md) From df898213f34cbad9b9bfaa34aa24deeb6a4340f0 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 24 Mar 2020 10:42:36 +0300 Subject: [PATCH 044/189] docs: add TrackByService to the menu --- docs/en/docs-nav.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json index a96fb911d2..425b8c526a 100644 --- a/docs/en/docs-nav.json +++ b/docs/en/docs-nav.json @@ -335,6 +335,10 @@ { "text": "Custom Setting Page", "path": "UI/Angular/Custom-Setting-Page.md" + }, + { + "text": "TrackByService", + "path": "UI/Angular/Track-By-Service.md" } ] } From 38e241dfe012b75ce917cf48d35c8c6afa94d5ee Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 24 Mar 2020 10:57:53 +0300 Subject: [PATCH 045/189] Test module signingcredential update to prevent multiple tempkey.rsa access at the same time. --- .../AbpIdentityServerTestBaseModule.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs index 29c748361a..ad64ec22fa 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs @@ -12,6 +12,18 @@ namespace Volo.Abp.IdentityServer )] public class AbpIdentityServerTestBaseModule : AbpModule { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(options => + { + options.AddDeveloperSigningCredential = false; + }); + + PreConfigure(identityServerBuilder => + { + identityServerBuilder.AddDeveloperSigningCredential(false); + }); + } public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddAlwaysAllowAuthorization(); From 2f68c19304fe811cd07ee04c5e63eed568149df0 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 24 Mar 2020 11:16:11 +0300 Subject: [PATCH 046/189] added prevention for existing tempkey.rsa reading --- .../Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs index ad64ec22fa..94624dce0b 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestBaseModule.cs @@ -21,7 +21,7 @@ namespace Volo.Abp.IdentityServer PreConfigure(identityServerBuilder => { - identityServerBuilder.AddDeveloperSigningCredential(false); + identityServerBuilder.AddDeveloperSigningCredential(false, System.Guid.NewGuid().ToString()); }); } public override void ConfigureServices(ServiceConfigurationContext context) From b8d234c632a872550e3aeb2df02d3b3d87e3c775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arma=C4=9Fan=20=C3=9Cnl=C3=BC?= <36102404+armgnunlu@users.noreply.github.com> Date: Tue, 24 Mar 2020 12:06:30 +0300 Subject: [PATCH 047/189] blog enhancements part 1 --- .../Pages/Blogs/Posts/Index.cshtml | 21 +++++++++---------- .../Shared/Styles/_bootstrap-overwrite.scss | 10 ++++++--- .../Pages/Blogs/Shared/Styles/_post.scss | 10 ++++++++- .../Pages/Blogs/Shared/Styles/blog.css | 14 ++++++++++++- .../Pages/Blogs/Shared/Styles/blog.min.css | 2 +- 5 files changed, 40 insertions(+), 17 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml index b4ee800394..fe5207cb52 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml @@ -43,8 +43,9 @@
+ Continue Reading → + @if (post.Writer != null) { @@ -113,7 +114,7 @@ } @L["WiewsWithCount", post.ReadCount] | - @L["CommentWithCount", post.CommentCount] + @L["CommentWithCount", post.CommentCount] @@ -157,11 +158,12 @@

@Html.Raw(GetShortContent(post.Content)) - Continue Reading

+ Continue Reading → +

@Html.Raw(GetShortContent(post.Content)) - Continue Reading