Löschen-Funktions mit Bestätigungsdialog eingebaut

This commit is contained in:
BuildTools 2024-02-07 19:55:21 +01:00
parent 5155d875c3
commit fb7f7e74ea
2 changed files with 46 additions and 4 deletions

View File

@ -19,12 +19,26 @@
@foreach (Cocktail c in CocktailListe) @foreach (Cocktail c in CocktailListe)
{ {
<tr> <tr>
<td class="p-0"><img src="@c.ImageURL" style="max-height:40px;" /></td> <td class="p-0" style="width:64px"><img src="@c.ImageURL" style="max-width:100%; max-height:auto;" /></td>
<td>@c.Name</td> <td style="vertical-align:middle;">@c.Name</td>
<td> <a class="btn btn-primary" href="/settings/cocktails/edit/@c.Id">Bearbeiten</a></td> <td style="text-align:right; vertical-align:middle;" >
<a class="btn btn-primary" href="/settings/cocktails/edit/@c.Id">Bearbeiten</a>
<button name="submit" type="submit" class="btn btn-outline-danger" @onclick="() => ConfirmDelete(c)">Löschen</button>
</td>
</tr> </tr>
} }
</tbody> </tbody>
</table> </table>
</div> </div>
<ModalComponent @ref="modal">
<Title>Löschen bestätigen</Title>
<Body>
Willst du den Cocktail wirklich löschen?
</Body>
<Footer>
<button class="btn btn-danger" @onclick="DeleteCocktail">Jo</button>
<button class="btn btn-primary" @onclick="CloseDialog">Nee</button>
</Footer>
</ModalComponent>

View File

@ -10,6 +10,8 @@ namespace CocktailWeb.Pages.Settings
public partial class Cocktails public partial class Cocktails
{ {
private DbDataContext? _DataContext; private DbDataContext? _DataContext;
private ModalComponent modal = null!;
private Cocktail? SelectedCocktail;
private List<Cocktail> CocktailListe { get; set; } = new(); private List<Cocktail> CocktailListe { get; set; } = new();
@ -26,5 +28,31 @@ namespace CocktailWeb.Pages.Settings
CocktailListe = await _DataContext.Cocktails.OrderBy(f => f.Name).ToListAsync(); CocktailListe = await _DataContext.Cocktails.OrderBy(f => f.Name).ToListAsync();
} }
} }
private async Task ConfirmDelete(Cocktail c)
{
SelectedCocktail = c;
await modal.OpenModal();
}
private async Task CloseDialog()
{
SelectedCocktail = null;
await modal.Close();
}
private async Task DeleteCocktail(MouseEventArgs e)
{
if (SelectedCocktail != null)
{
_DataContext ??= await DataContextFactory.CreateDbContextAsync();
if (_DataContext != null)
{
_DataContext.Cocktails.Remove(SelectedCocktail);
await _DataContext.SaveChangesAsync();
await ShowCocktails();
}
}
await CloseDialog();
}
} }
} }