Browse Source

Implemented editing role

pull/5399/head
Halil İbrahim Kalkan 6 years ago
parent
commit
086c3e7241
  1. 38
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor
  2. 43
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor.cs

38
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor

@ -6,18 +6,19 @@
@using Volo.Abp.Identity.Localization
@inject IIdentityRoleAppService RoleAppService
@inject IStringLocalizer<IdentityResource> L
@* ************************* PAGE HEADER ************************* *@
<Row>
<Column ColumnSize="ColumnSize.Is6">
<h1>@L["Roles"]</h1>
</Column>
<Column ColumnSize="ColumnSize.Is6">
<Paragraph Alignment="TextAlignment.Right">
<Button Color="Color.Primary" Clicked="OpenCreateModalAsync">+ New Role</Button>
<Button Color="Color.Primary" Clicked="OpenCreateModal">+ New Role</Button>
</Paragraph>
</Column>
</Row>
@* ************************* DATA GRID ************************* *@
<DataGrid TItem="IdentityRoleDto"
Data="_roles"
ReadData="OnDataGridReadAsync"
@ -31,7 +32,7 @@
Actions
</DropdownToggle>
<DropdownMenu>
<DropdownItem>Edit</DropdownItem>
<DropdownItem Clicked="() => OpenEditModalAsync(context.As<IdentityRoleDto>().Id)">Edit</DropdownItem>
<DropdownItem>Manage Permissions</DropdownItem>
<DropdownDivider />
<DropdownItem Clicked="() => DeleteRoleAsync(context.As<IdentityRoleDto>().Id)">Delete</DropdownItem>
@ -39,10 +40,11 @@
</Dropdown>
</DisplayTemplate>
</DataGridColumn>
<DataGridColumn TItem="IdentityRoleDto" Field="@nameof(IdentityRoleDto.Name)" Caption="Name"/>
<DataGridColumn TItem="IdentityRoleDto" Field="@nameof(IdentityRoleDto.Name)" Caption="Name" />
</DataGridColumns>
</DataGrid>
@* ************************* CREATE MODAL ************************* *@
<Modal @ref="_createModal">
<ModalBackdrop />
<ModalContent IsCentered="true">
@ -53,7 +55,7 @@
<ModalBody>
<Field>
<FieldLabel>Name</FieldLabel>
<TextEdit Placeholder="Enter name..." @bind-text="_newRole.Name" />
<TextEdit @bind-text="_newRole.Name" />
</Field>
<Field>
<Check TValue="bool" @bind-checked="_newRole.IsDefault">Default</Check>
@ -65,4 +67,30 @@
<Button Color="Color.Primary" Clicked="CreateRoleAsync">Save</Button>
</ModalFooter>
</ModalContent>
</Modal>
@* ************************* EDIT MODAL ************************* *@
<Modal @ref="_editModal">
<ModalBackdrop />
<ModalContent IsCentered="true">
<ModalHeader>
<ModalTitle>Edit role</ModalTitle>
<CloseButton Clicked="CloseEditModal" />
</ModalHeader>
<ModalBody>
<input type="hidden" name="ConcurrencyStamp" @bind-value="_editingRole.ConcurrencyStamp" />
<Field>
<FieldLabel>Name</FieldLabel>
<TextEdit @bind-text="_editingRole.Name" />
</Field>
<Field>
<Check TValue="bool" @bind-checked="_editingRole.IsDefault">Default</Check>
<Check TValue="bool" @bind-checked="_editingRole.IsPublic">Public</Check>
</Field>
</ModalBody>
<ModalFooter>
<Button Color="Color.Secondary" Clicked="CloseEditModal">Cancel</Button>
<Button Color="Color.Primary" Clicked="UpdateRoleAsync">Save</Button>
</ModalFooter>
</ModalContent>
</Modal>

43
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/RoleManagement.razor.cs

@ -4,7 +4,9 @@ using System.Threading.Tasks;
using Blazorise;
using Blazorise.DataGrid;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;
using Volo.Abp.Identity;
using Volo.Abp.ObjectExtending;
namespace MyCompanyName.MyProjectName.Blazor.Pages
{
@ -14,13 +16,20 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
{
private int _currentPage;
private int? _totalCount;
private IReadOnlyList<IdentityRoleDto> _roles;
private IdentityRoleCreateDto _newRole;
private Guid _editingRoleId;
private IdentityRoleUpdateDto _editingRole;
private Modal _createModal;
private Modal _editModal;
public RoleManagement()
{
_newRole = new IdentityRoleCreateDto();
_editingRole = new IdentityRoleUpdateDto();
}
protected override async Task OnInitializedAsync()
@ -48,7 +57,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
StateHasChanged();
}
private async Task OpenCreateModalAsync()
private void OpenCreateModal()
{
_newRole = new IdentityRoleCreateDto();
_createModal.Show();
@ -59,6 +68,31 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
_createModal.Hide();
}
private async Task OpenEditModalAsync(Guid id)
{
var role = await RoleAppService.GetAsync(id);
_editingRoleId = id;
//TODO: User AutoMapper!
_editingRole = new IdentityRoleUpdateDto
{
Name = role.Name,
ConcurrencyStamp = role.ConcurrencyStamp,
IsDefault = role.IsDefault,
IsPublic = role.IsPublic
};
role.MapExtraPropertiesTo(_editingRole);
_editModal.Show();
}
private void CloseEditModal()
{
_editModal.Hide();
}
private async Task CreateRoleAsync()
{
await RoleAppService.CreateAsync(_newRole);
@ -66,6 +100,13 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
_createModal.Hide();
}
private async Task UpdateRoleAsync()
{
await RoleAppService.UpdateAsync(_editingRoleId, _editingRole);
await GetRolesAsync();
_editModal.Hide();
}
private async Task DeleteRoleAsync(Guid id)
{
await RoleAppService.DeleteAsync(id);

Loading…
Cancel
Save