Skip to content

Commit fa9feba

Browse files
committed
Added Admin-Buttons
1 parent ace8576 commit fa9feba

File tree

7 files changed

+150
-11
lines changed

7 files changed

+150
-11
lines changed

LinkDotNet.Blog.Web/Pages/BlogPostPage.razor

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@page "/blogPost/{blogPostId}"
22
@using LinkDotNet.Domain
33
@using LinkDotNet.Infrastructure.Persistence
4+
@using LinkDotNet.Blog.Web.Shared.Admin
45
@using Markdig
56
@inject IRepository _repository
67
@inject IJSRuntime _jsRuntime
@@ -15,20 +16,24 @@ else
1516
<Title Value="@BlogPost.Title"></Title>
1617
<OgData Title="@BlogPost.Title" AbsolutePreviewImageUrl="@BlogPost.PreviewImageUrl" Description="@(Markdown.ToPlainText(BlogPost.ShortDescription))"></OgData>
1718
<div class="blog-outer-box">
18-
<div class="content blog-container">
19-
<div class="blog-content">
20-
<header>
21-
<h1>@BlogPost.Title</h1></header>
22-
<div class="blogpost-date">
23-
@BlogPost.UpdatedDate
24-
</div>
19+
<div class="content blog-container">
20+
<div class="blog-content">
21+
<header>
22+
<h1>@BlogPost.Title</h1></header>
23+
<div class="blogpost-date">
24+
@BlogPost.UpdatedDate
25+
</div>
26+
27+
<div class="admin-action">
28+
<BlogPostAdminActions BlogPostId="@BlogPostId"></BlogPostAdminActions>
29+
</div>
2530

26-
<div class="blogpost-content">
27-
@(RenderMarkupString(BlogPost.Content))
31+
<div class="blogpost-content">
32+
@(RenderMarkupString(BlogPost.Content))
33+
</div>
2834
</div>
2935
</div>
3036
</div>
31-
</div>
3237
}
3338

3439
@code {
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
@inject NavigationManager _navigationManager
2+
@inject IToastService _toastService
3+
4+
<AuthorizeView>
5+
<div class="blogpost-admin">
6+
<button type="button" class="btn btn-primary" @onclick="EditBlogPost" aria-label="edit"><i class="fas fa-pen-square"></i> Edit
7+
Blogpost</button>
8+
<button type="button" class="btn btn-danger" @onclick="ShowConfirmDialog" aria-label="delete"><i class="fas fa-trash"></i> Delete
9+
Blogpost</button>
10+
</div>
11+
<ConfirmDialog @ref="ConfirmDialog" Title="Delete Blog Post" Content="Do you want to delete the Blog Post?" OnYesPressed="@ShowMessage">
12+
</ConfirmDialog>
13+
</AuthorizeView>
14+
15+
@code {
16+
[Parameter]
17+
public string BlogPostId { get; set; }
18+
19+
private ConfirmDialog ConfirmDialog { get; set; }
20+
21+
private void ShowMessage()
22+
{
23+
_toastService.ShowInfo("Hey");
24+
}
25+
26+
private void ShowConfirmDialog()
27+
{
28+
ConfirmDialog.Open();
29+
}
30+
31+
private void EditBlogPost()
32+
{
33+
_navigationManager.NavigateTo($"update/{BlogPostId}");
34+
}
35+
36+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<ModalDialog @ref="ModalDialog" Title="@Title">
2+
<h3>@Content</h3>
3+
<div class="actions">
4+
<button @onclick="OnYesButtonPressed" type="button" class="btn btn-primary">Ok</button>
5+
<button @onclick="OnNoButtonPressed" type="button" class="btn btn">Cancel</button>
6+
</div>
7+
</ModalDialog>
8+
9+
@code {
10+
[Parameter]
11+
public string Title { get; set; }
12+
13+
[Parameter]
14+
public string Content { get; set; }
15+
16+
[Parameter]
17+
public EventCallback OnYesPressed { get; set; }
18+
19+
[Parameter]
20+
public EventCallback OnNoPressed { get; set; }
21+
22+
private ModalDialog ModalDialog { get; set; }
23+
24+
private async Task OnYesButtonPressed()
25+
{
26+
ModalDialog.Close();
27+
await OnYesPressed.InvokeAsync();
28+
}
29+
30+
private void OnNoButtonPressed()
31+
{
32+
ModalDialog.Close();
33+
}
34+
35+
public void Open()
36+
{
37+
ModalDialog.Open();
38+
}
39+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.actions {
2+
float:right;
3+
}
4+
5+
.actions * {
6+
padding-left: 5px;
7+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
@using System.ComponentModel.DataAnnotations
2+
<div class="modal @_modalClass" tabindex="-1" role="dialog" style="display:@_modalDisplay; overflow-y: auto;">
3+
<div class="modal-dialog modal-lg" role="document">
4+
<div class="modal-content">
5+
<div class="modal-header">
6+
<h5 class="modal-title">@Title</h5>
7+
<button type="button" class="close" data-dismiss="modal" aria-label="Close" @onclick="Close">
8+
<span aria-hidden="true"><i class="fas fa-times"></i></span>
9+
</button>
10+
</div>
11+
<div class="modal-body">
12+
@ChildContent
13+
</div>
14+
</div>
15+
</div>
16+
</div>
17+
18+
@if (_showBackdrop)
19+
{
20+
<div class="modal-backdrop fade show"></div>
21+
}
22+
23+
@code {
24+
[Parameter]
25+
public string Title { get; set; }
26+
27+
[Parameter]
28+
public RenderFragment ChildContent { get; set; }
29+
30+
private string _modalDisplay = "none;";
31+
private string _modalClass = "";
32+
private bool _showBackdrop = false;
33+
34+
public void Open()
35+
{
36+
_modalDisplay = "block;";
37+
_modalClass = "show";
38+
_showBackdrop = true;
39+
}
40+
41+
public void Close()
42+
{
43+
_modalDisplay = "none";
44+
_modalClass = "";
45+
_showBackdrop = false;
46+
}
47+
}

LinkDotNet.Blog.Web/Shared/ShortBlogPost.razor

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
</div>
3232
</div>
3333
</article>
34+
3435
@code {
3536
[Parameter]
3637
public BlogPost BlogPost { get; set; }

LinkDotNet.Blog.Web/Shared/ShortBlogPost.razor.css

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@
127127
border-radius: 3px;
128128
}
129129
.blog-card:hover .details {
130-
left: 0%;
130+
left: 0;
131131
}
132132
@media (min-width: 640px) {
133133
.blog-card {
@@ -163,4 +163,8 @@
163163
.blog-card.alt .details {
164164
padding-left: 25px;
165165
}
166+
}
167+
168+
.admin-action {
169+
padding-top: 10px;
166170
}

0 commit comments

Comments
 (0)