feat: added Board adding, editing and removing

This commit is contained in:
limited_dev 2023-03-11 02:50:07 +01:00
parent 9bdad9e48d
commit b595ce2909
15 changed files with 222 additions and 11 deletions

View file

@ -15,7 +15,7 @@
<span class="@role" >##@role</span>
}
<span class="date">@getTimeFromUnix(comment.CreatedAt)</span>
<span class="post-id">No.@comment.CommentID</span>
<span class="post-id">No.@comment.GET</span>
</div>
@if (opened)
{

View file

@ -0,0 +1,72 @@
@using ImageBoardServerApp.Data.Repository
@inject NavigationManager navigationManager
<div class="pd centered">
<div class="centered formContent">
<div>
<div class="pd centered marg">
<RadzenTextBox Placeholder="Tag" MaxLength="3" @bind-Value="@Tag" Class="w-100"/>
</div>
<div class="pd centered marg">
<RadzenTextBox Placeholder="Topic" MaxLength="15" @bind-Value="@Topic" Class="w-100"/>
</div>
<div class="pd centered marg">
<RadzenTextBox Placeholder="MaxThreads (Number)" MaxLength="3" @bind-Value="@maxThread" Class="w-100"/>
</div>
<div class="pd centered marg">
<RadzenCheckBox @bind-Value=@lockBoard />
<span>Lock Board</span>
</div>
</div>
</div>
<div class="pd centered marg">
<RadzenButton class="pd" Click="@onPostClick" Text="Set!"></RadzenButton>
</div>
</div>
@code {
[Parameter]
public string Tag { get; set; }
[Parameter]
public string Topic { get; set; }
[Parameter]
public string maxThread { get; set; }
[Parameter]
public bool lockBoard { get; set; }
private async Task onPostClick()
{
if (!int.TryParse(maxThread, out _))
return;
var newB = new BoardData()
{
Tag = Tag.ToLower(),
Topic = Topic,
maxThreads = int.Parse(maxThread),
isLocked = lockBoard,
NumberOfGETs = 0
};
var bCheck = await BoardsRepository.getBoardByTagAsync(newB.Tag);
if (bCheck == null)
{
await BoardsRepository.createBoardAsync(newB);
return;
}
bCheck.Tag = newB.Tag;
bCheck.Topic = newB.Topic;
bCheck.maxThreads = newB.maxThreads;
bCheck.isLocked = newB.isLocked;
await BoardsRepository.updateBoardAsync(bCheck);
navigationManager.NavigateTo("/sys/modmenu/boards", true, true);
}
}

View file

@ -0,0 +1,44 @@
.toggleOpened{
color: #0a58ca;
text-decoration: none;
}
.toggleOpened:hover{
color: #0a58ca; !important;
cursor: pointer;
}
.centered {
text-align: center;
justify-content: center;
align-items: center;
}
.pd {
padding: 5px;
}
.marg{
margin: 2px
}
.formImage{
margin: 6px;
max-width: 200px;
max-height: 200px;
padding: 5px;
}
.formImage img{
max-width:150px;
width: 100%;
}
.formContent{
text-align: left;
display: flex;
}
.postError{
color: #ff191c;
}

View file

@ -119,7 +119,9 @@
{
postUsername = "Anonymous";
}
int thisGET = b.NumberOfGETs + 1;
b.NumberOfGETs++;
await BoardsRepository.updateBoardAsync(b);
CommentData commentToCreate;
if (hasImage)
{
@ -146,7 +148,8 @@
Content = postContent,
Username = postUsername,
Board = post.Board,
CreatedAt = DateTimeOffset.Now.ToUnixTimeMilliseconds()
CreatedAt = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
GET = thisGET
};
}
else
@ -158,7 +161,8 @@
Content = postContent,
Username = postUsername,
Board = post.Board,
CreatedAt = DateTimeOffset.Now.ToUnixTimeMilliseconds()
CreatedAt = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
GET = thisGET
};
}

View file

@ -149,6 +149,11 @@
{
postUsername = "Anonymous";
}
int thisGET = b.NumberOfGETs + 1;
b.NumberOfGETs++;
await BoardsRepository.updateBoardAsync(b);
var postToPost = new PostData
{
UserID = userID,
@ -160,7 +165,8 @@
CreatedAt = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
Board = board.Tag,
IsLocked = false,
IsSticky = false
IsSticky = false,
GET = thisGET
};
int postId = await PostsRepository.createPostAsync(postToPost);
if (postId != -1)

View file

@ -23,7 +23,7 @@
}
<span> </span>
<span class="date"> @getTimeFromUnix(post.CreatedAt)</span>
<span class="post-id">No.@post.PostID</span>
<span class="post-id">No.@post.GET</span>
<AuthorizeView Roles="Admin,Mod">
<Authorized>
<span> </span>