diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md index f8bcf90aa0..d113442af9 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-I.md @@ -455,7 +455,7 @@ $(function () { The final UI is shown below: -![bookstore-book-list](images/bookstore-book-list.png) +![bookstore-book-list](images/bookstore-book-list-2.png) ### Next Part diff --git a/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md b/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md index cab941a9e9..1e3ec1f539 100644 --- a/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md +++ b/docs/en/Tutorials/AspNetCore-Mvc/Part-II.md @@ -16,7 +16,7 @@ You can access to the **source code** of the application from [the GitHub reposi In this section, you will learn how to create a new modal dialog form to create a new book. The result dialog will be like that: -![bookstore-create-dialog](images/bookstore-create-dialog.png) +![bookstore-create-dialog](images/bookstore-create-dialog-2.png) #### Create the Modal Form diff --git a/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png b/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png new file mode 100644 index 0000000000..a7d49a661b Binary files /dev/null and b/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-book-list-2.png differ diff --git a/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png b/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png new file mode 100644 index 0000000000..3d5f1e8582 Binary files /dev/null and b/docs/en/Tutorials/AspNetCore-Mvc/images/bookstore-create-dialog-2.png differ diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index 2972ccfffb..b8bef0b7d1 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -170,9 +170,9 @@ var $checkBox = $(this); var $tab = $('#' + $checkBox.attr('data-tab-id')); if ($checkBox.is(':checked')) { - $tab.find('input[type="checkbox"]').prop('checked', true); + $tab.find('input[type="checkbox"]').not(':disabled').prop('checked', true); } else { - $tab.find('input[type="checkbox"]').prop('checked', false); + $tab.find('input[type="checkbox"]').not(':disabled').prop('checked', false); } $($checkBox).prop('indeterminate', false); setSelectAllInAllTabs(); @@ -181,9 +181,9 @@ $('input[name="SelectAllInAllTabs"]').change(function () { var $checkBox = $(this); if ($checkBox.is(':checked')) { - $('.tab-pane input[type="checkbox"]').prop('checked', true); + $('.tab-pane input[type="checkbox"]').not(':disabled').prop('checked', true); } else { - $('.tab-pane input[type="checkbox"]').prop('checked', false); + $('.tab-pane input[type="checkbox"]').not(':disabled').prop('checked', false); } $($checkBox).prop('indeterminate', false); }); diff --git a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts index 0504da38b4..30852429f5 100644 --- a/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts +++ b/npm/ng-packs/packages/core/src/lib/components/dynamic-layout.component.ts @@ -54,7 +54,7 @@ function findLayout(segments: UrlSegment[], routes: ABP.FullRoute[]): eLayoutTyp layout = route.layout; } - if (route.children && route.children.length) { + if (route.children && route.children.length && segments.length > 1) { const child = route.children.find(c => c.path === segments[1].path); if (child.layout) { diff --git a/npm/ng-packs/packages/core/src/lib/directives/ellipsis.directive.ts b/npm/ng-packs/packages/core/src/lib/directives/ellipsis.directive.ts index 844f1d9a87..3c2a8ecfeb 100644 --- a/npm/ng-packs/packages/core/src/lib/directives/ellipsis.directive.ts +++ b/npm/ng-packs/packages/core/src/lib/directives/ellipsis.directive.ts @@ -21,7 +21,7 @@ export class EllipsisDirective implements AfterContentInit { @HostBinding('style.max-width') get maxWidth() { - return this.enabled ? this.witdh || '180px' : undefined; + return this.enabled ? this.witdh || '160px' : undefined; } constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {} diff --git a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html index 546a768006..c6d1c70631 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html +++ b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.html @@ -77,7 +77,7 @@
* - +
diff --git a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts index 06594d8091..2b6d72f4ff 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts +++ b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts @@ -1,10 +1,10 @@ import { ABP } from '@abp/ng.core'; import { ConfirmationService, Toaster } from '@abp/ng.theme.shared'; import { Component, TemplateRef, ViewChild } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; import { Select, Store } from '@ngxs/store'; import { Observable } from 'rxjs'; -import { debounceTime, finalize, pluck } from 'rxjs/operators'; +import { finalize, pluck } from 'rxjs/operators'; import { IdentityAddRole, IdentityDeleteRole, @@ -54,7 +54,10 @@ export class RolesComponent { createForm() { this.form = this.fb.group({ - name: [this.selected.name || '', [Validators.required, Validators.maxLength(256)]], + name: new FormControl({ value: this.selected.name || '', disabled: this.selected.isStatic }, [ + Validators.required, + Validators.maxLength(256), + ]), isDefault: [this.selected.isDefault || false], isPublic: [this.selected.isPublic || false], }); diff --git a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html index 03f5dcb605..df4b6a2eb5 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html +++ b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html @@ -88,7 +88,7 @@ -
+
* @@ -105,7 +105,7 @@
-
+
* -
+
res1 && res2), - map(([state, _]) => state), + switchMap(() => this.store.dispatch(new IdentityGetUserRoles(id))), pluck('IdentityState'), take(1), ) diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html index 6ad9bfb201..bc93f0df19 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.html @@ -65,12 +65,16 @@ [value]="getChecked(permission.name)" [attr.id]="permission.name" class="custom-control-input" + [disabled]="permission.isGranted && permission.grantedProviders.length > 0" /> {{ permission.displayName }} + {{ provider.providerName }}: {{ provider.providerKey }}
diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index ed2139ecb7..a6e4ace105 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -96,6 +96,8 @@ export class PermissionManagementComponent implements OnInit, OnChanges { } onClickCheckbox(clickedPermission: PermissionManagement.Permission, value) { + if (clickedPermission.isGranted && clickedPermission.grantedProviders.length > 0) return; + setTimeout(() => { this.permissions = this.permissions.map(per => { if (clickedPermission.name === per.name) { diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-account/layout-account.component.html b/npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/account-layout.component.html similarity index 100% rename from npm/ng-packs/packages/theme-basic/src/lib/components/layout-account/layout-account.component.html rename to npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/account-layout.component.html diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-account/layout-account.component.ts b/npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/account-layout.component.ts similarity index 73% rename from npm/ng-packs/packages/theme-basic/src/lib/components/layout-account/layout-account.component.ts rename to npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/account-layout.component.ts index 32f358b869..e3e4d2db07 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-account/layout-account.component.ts +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/account-layout/account-layout.component.ts @@ -3,9 +3,9 @@ import { eLayoutType } from '@abp/ng.core'; @Component({ selector: 'abp-layout-account', - templateUrl: './layout-account.component.html', + templateUrl: './account-layout.component.html', }) -export class LayoutAccountComponent { +export class AccountLayoutComponent { // required for dynamic component static type = eLayoutType.account; diff --git a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html b/npm/ng-packs/packages/theme-basic/src/lib/components/application-layout/application-layout.component.html similarity index 95% rename from npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html rename to npm/ng-packs/packages/theme-basic/src/lib/components/application-layout/application-layout.component.html index b1d5283246..d62ebad938 100644 --- a/npm/ng-packs/packages/theme-basic/src/lib/components/layout-application/layout-application.component.html +++ b/npm/ng-packs/packages/theme-basic/src/lib/components/application-layout/application-layout.component.html @@ -95,7 +95,7 @@