Browse Source

Add indeterminate state to 'Select All' checkbox

pull/23846/head
maliming 1 year ago
parent
commit
80fdac8f27
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor
  2. 5
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor

@ -24,7 +24,7 @@
</Column> </Column>
<Column ColumnSize="ColumnSize.IsAuto"> <Column ColumnSize="ColumnSize.IsAuto">
<Field> <Field>
<Check Disabled="_selectAllDisabled" Cursor="Cursor.Pointer" CheckedChanged="@GrantAllAsync" Checked="@GrantAll" TValue="bool"> <Check Disabled="_selectAllDisabled" Cursor="Cursor.Pointer" CheckedChanged="@GrantAllAsync" Checked="@GrantAll" TValue="bool" Indeterminate="@GrantAny">
@L["SelectAllInAllTabs"] @L["SelectAllInAllTabs"]
</Check> </Check>
</Field> </Field>

5
modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

@ -36,6 +36,7 @@ public partial class PermissionManagementModal
protected string _permissionGroupSearchText; protected string _permissionGroupSearchText;
protected bool GrantAll { get; set; } protected bool GrantAll { get; set; }
protected bool GrantAny { get; set; }
protected Dictionary<string, int> _permissionDepths = new Dictionary<string, int>(); protected Dictionary<string, int> _permissionDepths = new Dictionary<string, int>();
@ -61,6 +62,7 @@ public partial class PermissionManagementModal
NormalizePermissionGroup(); NormalizePermissionGroup();
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted); GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(_modal.Show); await InvokeAsync(_modal.Show);
} }
@ -73,6 +75,7 @@ public partial class PermissionManagementModal
protected virtual async Task GrantAllAsync(bool grantAll) protected virtual async Task GrantAllAsync(bool grantAll)
{ {
GrantAll = grantAll; GrantAll = grantAll;
GrantAny = false;
if (_allGroups == null) if (_allGroups == null)
{ {
@ -194,6 +197,7 @@ public partial class PermissionManagementModal
} }
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted); GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
@ -216,6 +220,7 @@ public partial class PermissionManagementModal
} }
GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted); GrantAll = _groups.SelectMany(x => x.Permissions).All(p => p.IsGranted);
GrantAny = !GrantAll && _groups.SelectMany(x => x.Permissions).Any(p => p.IsGranted);
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }

Loading…
Cancel
Save