Introduce IUiMessageService and implement delete confirmation for roles.

pull/5399/head
Halil İbrahim Kalkan 5 years ago
parent e51e235903
commit fc6b7def6b

@ -0,0 +1,9 @@
using System.Threading.Tasks;
namespace Volo.Abp.AspNetCore.Components.WebAssembly
{
public interface IUiMessageService
{
Task<bool> ConfirmAsync(string message, string title = null);
}
}

@ -0,0 +1,22 @@
using System.Threading.Tasks;
using Microsoft.JSInterop;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Components.WebAssembly
{
public class UiMessageService : IUiMessageService, ITransientDependency
{
protected IJSRuntime JsRuntime { get; }
public UiMessageService(IJSRuntime jsRuntime)
{
JsRuntime = jsRuntime;
}
public async Task<bool> ConfirmAsync(string message, string title = null)
{
//TODO: Implement with sweetalert in a new package
return await JsRuntime.InvokeAsync<bool>("confirm", message);
}
}
}

@ -6,6 +6,7 @@
@using Volo.Abp.Identity.Localization
@inject IIdentityRoleAppService RoleAppService
@inject IStringLocalizer<IdentityResource> L
@inject IUiMessageService UiMessageService
@* ************************* PAGE HEADER ************************* *@
<Row>
<Column ColumnSize="ColumnSize.Is6">
@ -35,7 +36,7 @@
<DropdownItem Clicked="() => OpenEditModalAsync(context.As<IdentityRoleDto>().Id)">Edit</DropdownItem>
<DropdownItem>Manage Permissions</DropdownItem>
<DropdownDivider />
<DropdownItem Clicked="() => DeleteRoleAsync(context.As<IdentityRoleDto>().Id)">Delete</DropdownItem>
<DropdownItem Clicked="() => DeleteRoleAsync(context.As<IdentityRoleDto>())">Delete</DropdownItem>
</DropdownMenu>
</Dropdown>
</DisplayTemplate>

@ -107,9 +107,14 @@ namespace MyCompanyName.MyProjectName.Blazor.Pages
_editModal.Hide();
}
private async Task DeleteRoleAsync(Guid id)
private async Task DeleteRoleAsync(IdentityRoleDto role)
{
await RoleAppService.DeleteAsync(id);
if (!await UiMessageService.ConfirmAsync("Are you sure to delete the role " + role.Name))
{
return;
}
await RoleAppService.DeleteAsync(role.Id);
await GetRolesAsync();
}
}

@ -5,7 +5,8 @@
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Microsoft.JSInterop
@using Volo.Abp.AspNetCore.Components.WebAssembly
@using MyCompanyName.MyProjectName.Blazor
@using MyCompanyName.MyProjectName.Blazor.Shared
@using Blazorise
@using Blazorise.DataGrid
@using Blazorise.DataGrid

Loading…
Cancel
Save