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 @using Volo.Abp.Identity.Localization
@inject IIdentityRoleAppService RoleAppService @inject IIdentityRoleAppService RoleAppService
@inject IStringLocalizer<IdentityResource> L @inject IStringLocalizer<IdentityResource> L
@* ************************* PAGE HEADER ************************* *@
<Row> <Row>
<Column ColumnSize="ColumnSize.Is6"> <Column ColumnSize="ColumnSize.Is6">
<h1>@L["Roles"]</h1> <h1>@L["Roles"]</h1>
</Column> </Column>
<Column ColumnSize="ColumnSize.Is6"> <Column ColumnSize="ColumnSize.Is6">
<Paragraph Alignment="TextAlignment.Right"> <Paragraph Alignment="TextAlignment.Right">
<Button Color="Color.Primary" Clicked="OpenCreateModalAsync">+ New Role</Button> <Button Color="Color.Primary" Clicked="OpenCreateModal">+ New Role</Button>
</Paragraph> </Paragraph>
</Column> </Column>
</Row> </Row>
@* ************************* DATA GRID ************************* *@
<DataGrid TItem="IdentityRoleDto" <DataGrid TItem="IdentityRoleDto"
Data="_roles" Data="_roles"
ReadData="OnDataGridReadAsync" ReadData="OnDataGridReadAsync"
@ -31,7 +32,7 @@
Actions Actions
</DropdownToggle> </DropdownToggle>
<DropdownMenu> <DropdownMenu>
<DropdownItem>Edit</DropdownItem> <DropdownItem Clicked="() => OpenEditModalAsync(context.As<IdentityRoleDto>().Id)">Edit</DropdownItem>
<DropdownItem>Manage Permissions</DropdownItem> <DropdownItem>Manage Permissions</DropdownItem>
<DropdownDivider /> <DropdownDivider />
<DropdownItem Clicked="() => DeleteRoleAsync(context.As<IdentityRoleDto>().Id)">Delete</DropdownItem> <DropdownItem Clicked="() => DeleteRoleAsync(context.As<IdentityRoleDto>().Id)">Delete</DropdownItem>
@ -39,10 +40,11 @@
</Dropdown> </Dropdown>
</DisplayTemplate> </DisplayTemplate>
</DataGridColumn> </DataGridColumn>
<DataGridColumn TItem="IdentityRoleDto" Field="@nameof(IdentityRoleDto.Name)" Caption="Name"/> <DataGridColumn TItem="IdentityRoleDto" Field="@nameof(IdentityRoleDto.Name)" Caption="Name" />
</DataGridColumns> </DataGridColumns>
</DataGrid> </DataGrid>
@* ************************* CREATE MODAL ************************* *@
<Modal @ref="_createModal"> <Modal @ref="_createModal">
<ModalBackdrop /> <ModalBackdrop />
<ModalContent IsCentered="true"> <ModalContent IsCentered="true">
@ -53,7 +55,7 @@
<ModalBody> <ModalBody>
<Field> <Field>
<FieldLabel>Name</FieldLabel> <FieldLabel>Name</FieldLabel>
<TextEdit Placeholder="Enter name..." @bind-text="_newRole.Name" /> <TextEdit @bind-text="_newRole.Name" />
</Field> </Field>
<Field> <Field>
<Check TValue="bool" @bind-checked="_newRole.IsDefault">Default</Check> <Check TValue="bool" @bind-checked="_newRole.IsDefault">Default</Check>
@ -65,4 +67,30 @@
<Button Color="Color.Primary" Clicked="CreateRoleAsync">Save</Button> <Button Color="Color.Primary" Clicked="CreateRoleAsync">Save</Button>
</ModalFooter> </ModalFooter>
</ModalContent> </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> </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;
using Blazorise.DataGrid; using Blazorise.DataGrid;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Data;
using Volo.Abp.Identity; using Volo.Abp.Identity;
using Volo.Abp.ObjectExtending;
namespace MyCompanyName.MyProjectName.Blazor.Pages namespace MyCompanyName.MyProjectName.Blazor.Pages
{ {
@ -14,13 +16,20 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
{ {
private int _currentPage; private int _currentPage;
private int? _totalCount; private int? _totalCount;
private IReadOnlyList<IdentityRoleDto> _roles; private IReadOnlyList<IdentityRoleDto> _roles;
private IdentityRoleCreateDto _newRole; private IdentityRoleCreateDto _newRole;
private Guid _editingRoleId;
private IdentityRoleUpdateDto _editingRole;
private Modal _createModal; private Modal _createModal;
private Modal _editModal;
public RoleManagement() public RoleManagement()
{ {
_newRole = new IdentityRoleCreateDto(); _newRole = new IdentityRoleCreateDto();
_editingRole = new IdentityRoleUpdateDto();
} }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
@ -48,7 +57,7 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
StateHasChanged(); StateHasChanged();
} }
private async Task OpenCreateModalAsync() private void OpenCreateModal()
{ {
_newRole = new IdentityRoleCreateDto(); _newRole = new IdentityRoleCreateDto();
_createModal.Show(); _createModal.Show();
@ -59,6 +68,31 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
_createModal.Hide(); _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() private async Task CreateRoleAsync()
{ {
await RoleAppService.CreateAsync(_newRole); await RoleAppService.CreateAsync(_newRole);
@ -66,6 +100,13 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
_createModal.Hide(); _createModal.Hide();
} }
private async Task UpdateRoleAsync()
{
await RoleAppService.UpdateAsync(_editingRoleId, _editingRole);
await GetRolesAsync();
_editModal.Hide();
}
private async Task DeleteRoleAsync(Guid id) private async Task DeleteRoleAsync(Guid id)
{ {
await RoleAppService.DeleteAsync(id); await RoleAppService.DeleteAsync(id);

Loading…
Cancel
Save