Browse Source

permission management modal improved

pull/5399/head
Ahmet Çotur 6 years ago
parent
commit
92b63ff0ae
  1. 70
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor
  2. 28
      modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Components/PermissionManagementModal.razor.cs

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

@ -3,25 +3,71 @@
@inject IStringLocalizer<AbpPermissionManagementResource> L @inject IStringLocalizer<AbpPermissionManagementResource> L
<Modal @ref="_modal"> <Modal @ref="_modal">
<ModalBackdrop /> <ModalBackdrop />
<ModalContent IsCentered="true"> <ModalContent Size="ModalSize.Large" IsCentered="true">
<ModalHeader> <ModalHeader>
<ModalTitle>Edit role</ModalTitle> <ModalTitle>@L["Permissions"] - @_providerKey</ModalTitle>
<CloseButton Clicked="CloseModal" /> <CloseButton Clicked="CloseModal" />
</ModalHeader> </ModalHeader>
<ModalBody MaxHeight="50"> <ModalBody MaxHeight="50">
<Field>
<Check Cursor="Cursor.Pointer" Checked="@GrantAll" CheckedChanged="GrantAllChanged" TValue="bool">@L["SelectAllInAllTabs"]</Check>
</Field>
<Divider />
@if (_groups != null) @if (_groups != null)
{ {
@foreach (var group in _groups) <Tabs TabPosition="TabPosition.Left" Pills="true" SelectedTab="@GetNormalizedGroupName(_groups.First().Name)">
{ <Items>
<h3>@group.DisplayName</h3> @foreach (var group in _groups)
{
<Tab Name="@GetNormalizedGroupName(group.Name)">
@if (group.Permissions.Any(x => x.IsGranted))
{
<span>
<b>@group.DisplayName ( @(group.Permissions.Count(x => x.IsGranted)) )</b>
</span>
}
else
{
<span>
@group.DisplayName ( @(group.Permissions.Count(x => x.IsGranted)) )
</span>
}
</Tab>
}
</Items>
<Content>
@foreach (var group in _groups)
{
<TabPanel Name="@GetNormalizedGroupName(group.Name)">
<h4>@group.DisplayName</h4>
@{
/* TODO: add Select All In This Tab
<Divider />
<Field>
<Check Cursor="Cursor.Pointer" TValue="bool">@L["SelectAllInThisTab"]</Check>
</Field>
@foreach (var permission in group.Permissions) <Divider />
{ */
<Field Margin="permission.ParentName != null ? Blazorise.Margin.Is3.OnAll : Blazorise.Margin.Is0.OnAll"> }
<Check @bind-checked="@permission.IsGranted" TValue="bool">@permission.DisplayName</Check>
</Field>
} @foreach (var permission in group.Permissions)
} {
<Field Margin="permission.ParentName != null ? Blazorise.Margin.Is3.OnAll : Blazorise.Margin.Is0.OnAll">
<Check Cursor="Cursor.Pointer" @bind-checked="@permission.IsGranted" TValue="bool">@permission.DisplayName</Check>
</Field>
}
</TabPanel>
}
</Content>
</Tabs>
} }
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>

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

@ -18,6 +18,29 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
private string _entityDisplayName; private string _entityDisplayName;
private List<PermissionGroupDto> _groups; private List<PermissionGroupDto> _groups;
private bool GrantAll
{
get
{
return _groups != null && _groups.All(x => x.Permissions.All(y => y.IsGranted));
}
set
{
if (_groups == null)
{
return;
}
foreach (var permissionGroupDto in _groups)
{
foreach (var permission in permissionGroupDto.Permissions)
{
permission.IsGranted = value;
}
}
}
}
public async Task OpenAsync(string providerName, string providerKey) public async Task OpenAsync(string providerName, string providerKey)
{ {
_providerName = providerName; _providerName = providerName;
@ -55,5 +78,10 @@ namespace Volo.Abp.PermissionManagement.Blazor.Components
{ {
return "PermissionGroup_" + name.Replace(".", "_"); return "PermissionGroup_" + name.Replace(".", "_");
} }
public void GrantAllChanged(bool value)
{
GrantAll = value;
}
} }
} }

Loading…
Cancel
Save