diff --git a/Marechai/Areas/Admin/Views/Licenses/Delete.cshtml b/Marechai/Areas/Admin/Views/Licenses/Delete.cshtml
deleted file mode 100644
index 8ac4947f..00000000
--- a/Marechai/Areas/Admin/Views/Licenses/Delete.cshtml
+++ /dev/null
@@ -1,56 +0,0 @@
-@model Marechai.Database.Models.License
-
-@{
- ViewData["Title"] = "Delete";
-}
-
Delete
-Are you sure you want to delete this?
-
-
License
-
-
- -
- @Html.DisplayNameFor(model => model.Name)
-
- -
- @Html.DisplayFor(model => model.Name)
-
- -
- @Html.DisplayNameFor(model => model.SPDX)
-
- -
- @Html.DisplayFor(model => model.SPDX)
-
- -
- @Html.DisplayNameFor(model => model.FsfApproved)
-
- -
- @Html.DisplayFor(model => model.FsfApproved)
-
- -
- @Html.DisplayNameFor(model => model.OsiApproved)
-
- -
- @Html.DisplayFor(model => model.OsiApproved)
-
- -
- @Html.DisplayNameFor(model => model.Link)
-
- -
- @Html.DisplayFor(model => model.Link)
-
- -
- @Html.DisplayNameFor(model => model.Text)
-
- -
- @Html.DisplayFor(model => model.Text)
-
-
-
-
\ No newline at end of file
diff --git a/Marechai/Pages/Admin/Licenses.razor b/Marechai/Pages/Admin/Licenses.razor
index b0d92473..ca3eadf6 100644
--- a/Marechai/Pages/Admin/Licenses.razor
+++ b/Marechai/Pages/Admin/Licenses.razor
@@ -31,7 +31,6 @@
}
@page "/admin/licenses"
-@using Marechai.Database.Models
@inherits OwningComponentBase
@inject IStringLocalizer L
@attribute [Authorize(Roles = "UberAdmin, Admin")]
@@ -99,21 +98,26 @@
@L["Edit"]
-
- @L["Delete"]
-
+
}
-@code
-{
- List _licenses;
-
- protected override async Task OnInitializedAsync()
- {
- _licenses = await Service.GetAsync();
- }
-}
\ No newline at end of file
+
+
+
+
+ @L["Delete license"]
+
+
+
+ @string.Format(@L["Are you sure you want to delete {0}?"], _license?.Name)
+
+
+
+
+
+
+
diff --git a/Marechai/Pages/Admin/Licenses.razor.cs b/Marechai/Pages/Admin/Licenses.razor.cs
new file mode 100644
index 00000000..a60a0fab
--- /dev/null
+++ b/Marechai/Pages/Admin/Licenses.razor.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Blazorise;
+using Marechai.Database.Models;
+
+namespace Marechai.Pages.Admin
+{
+ public partial class Licenses
+ {
+ bool _deleteInProgress;
+ Modal _frmDelete;
+ License _license;
+ List _licenses;
+
+ void ShowModal(int itemId)
+ {
+ _license = _licenses.FirstOrDefault(n => n.Id == itemId);
+ _frmDelete.Show();
+ }
+
+ void HideModal() => _frmDelete.Hide();
+
+ async void ConfirmDelete()
+ {
+ if(_license is null)
+ return;
+
+ _deleteInProgress = true;
+ _licenses = null;
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ await Service.DeleteAsync(_license.Id);
+ _licenses = await Service.GetAsync();
+
+ _deleteInProgress = false;
+ _frmDelete.Hide();
+
+ // Yield thread to let UI to update
+ await Task.Yield();
+
+ // Tell we finished loading
+ StateHasChanged();
+ }
+
+ void ModalClosing(ModalClosingEventArgs obj) => _license = null;
+
+ protected override async Task OnInitializedAsync() => _licenses = await Service.GetAsync();
+ }
+}
\ No newline at end of file
diff --git a/Marechai/Resources/Services/LicensesService.es.resx b/Marechai/Resources/Services/LicensesService.es.resx
index 2f510632..1a273acb 100644
--- a/Marechai/Resources/Services/LicensesService.es.resx
+++ b/Marechai/Resources/Services/LicensesService.es.resx
@@ -162,4 +162,16 @@
Eliminar
Delete
+
+ Eliminar licencia
+ Delete license
+
+
+ ¿Está seguro de que desea borrar {0}?
+ {0} license name
+
+
+ Cancelar
+ Cancel
+
\ No newline at end of file
diff --git a/Marechai/Services/LicensesService.cs b/Marechai/Services/LicensesService.cs
index 6136cf6a..1999974c 100644
--- a/Marechai/Services/LicensesService.cs
+++ b/Marechai/Services/LicensesService.cs
@@ -13,6 +13,22 @@ namespace Marechai.Services
public LicensesService(MarechaiContext context) => _context = context;
public async Task> GetAsync() =>
- await _context.Licenses.OrderBy(l => l.Name).Select(l => new License(){FsfApproved = l.FsfApproved, Id= l.Id, Link = l.Link, Name = l.Name, OsiApproved = l.OsiApproved, SPDX = l.SPDX}).ToListAsync();
+ await _context.Licenses.OrderBy(l => l.Name).Select(l => new License
+ {
+ FsfApproved = l.FsfApproved, Id = l.Id, Link = l.Link, Name = l.Name,
+ OsiApproved = l.OsiApproved, SPDX = l.SPDX
+ }).ToListAsync();
+
+ public async Task DeleteAsync(int id)
+ {
+ License item = await _context.Licenses.FindAsync(id);
+
+ if(item is null)
+ return;
+
+ _context.Licenses.Remove(item);
+
+ await _context.SaveChangesAsync();
+ }
}
}
\ No newline at end of file