!INFO: tried to move to postgreSQL did not work
fix: fixed bumping, fixed banning from Reports Menu feat: improved homepage, finilized comments and posts, moved version from nav menu to sidebar Signed-off-by: limited_dev <loginakkisativ@gmail.com>
This commit is contained in:
parent
7bd31ea7b5
commit
73be698399
12 changed files with 188 additions and 47 deletions
|
@ -1,8 +1,9 @@
|
|||
@page "/"
|
||||
@using ImageBoardServerApp.Util
|
||||
@using ImageBoardServerApp.Data.Repository
|
||||
@inject AuthenticationStateProvider authStateProvider
|
||||
|
||||
<h1>BulletBoard</h1>
|
||||
<h1>BulletBoard @ver</h1>
|
||||
<p>
|
||||
This is a simple <a href="https://en.wiktionary.org/wiki/imageboard">imageboard</a> made in <a href="https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor">Razor Server</a>.
|
||||
<br/>
|
||||
|
@ -12,7 +13,9 @@
|
|||
<br/>
|
||||
Click <a href="https://www.gnu.org/philosophy/free-sw.en.html">here</a> to learn more about free software.
|
||||
<br/>
|
||||
Check out the project on <a href="https://git.limited-dev.de/eric/imageboard">Gitlab</a>.
|
||||
<br>
|
||||
<br/>
|
||||
We're currently @amountOfUsers User(s), viewing @amountOfPosts Post(s) with @amountOfComments Comment(s).
|
||||
<br/>
|
||||
Click here to:
|
||||
|
@ -36,6 +39,8 @@
|
|||
private int amountOfComments = -1;
|
||||
private int amountOfUsers = -1;
|
||||
|
||||
public string ver { get; set; } = TheManager.version;
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
var posts = await PostsRepository.getPostsAsync();
|
||||
|
|
|
@ -55,6 +55,8 @@
|
|||
{
|
||||
if (selectedItem == null || selectedItem == "none")
|
||||
return;
|
||||
if (explaination == null)
|
||||
return;
|
||||
var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider;
|
||||
var user = await cauthStateProvder.GetAuthenticationStateAsync();
|
||||
var usr = user.User;
|
||||
|
@ -94,10 +96,13 @@
|
|||
};
|
||||
|
||||
List<ReportData> submittedReports = foundusr.RecivedReports;
|
||||
foreach (var r in submittedReports)
|
||||
if (foundusr.RecivedReports != null)
|
||||
{
|
||||
if (r.ReportedPostID == reportData.ReportedPostID && r.ReportedCommentID == reportData.ReportedCommentID)
|
||||
return;
|
||||
foreach (var r in submittedReports)
|
||||
{
|
||||
if (r.ReportedPostID == reportData.ReportedPostID && r.ReportedCommentID == reportData.ReportedCommentID)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
await ReportsRepository.createReportAsync(reportData);
|
||||
|
|
|
@ -1,10 +1,53 @@
|
|||
@page "/sys/modtools/{targetuserid}/{type}/{targetid}"
|
||||
@page "/sys/modtools/banandordel/{targetuserid}/{board}/{type}/{threadid}/{targetid}"
|
||||
@using ImageBoardServerApp.Data.Repository
|
||||
@using System.ComponentModel.DataAnnotations
|
||||
@inject NavigationManager navManager
|
||||
@inject IJSRuntime js
|
||||
|
||||
<AuthorizeView Roles="Admin,Mod">
|
||||
<Authorized>
|
||||
<div>
|
||||
|
||||
<UserEntry user="user"></UserEntry>
|
||||
<p>
|
||||
<a href="/@board/thread/@threadid">[View Thread]</a>
|
||||
</p>
|
||||
<div>
|
||||
<br/>
|
||||
@if (type == "op")
|
||||
{
|
||||
<Post post="post" showOpenThread="true"/>
|
||||
}
|
||||
else if (type == "comment")
|
||||
{
|
||||
<Comment comment="comment"/>
|
||||
}
|
||||
else
|
||||
{
|
||||
<p>This is not a valid type.</p>
|
||||
}
|
||||
</div>
|
||||
<div>
|
||||
<form>
|
||||
<RadzenFormField Text="Reason" Variant="Variant.Outlined">
|
||||
<RadzenTextBox @bind-Value="@reason"/>
|
||||
</RadzenFormField>
|
||||
<br/>
|
||||
<br/>
|
||||
<span>Ban User: </span>
|
||||
<a @onclick="() => banTarget(1)" href="javascript:void(0)">1h</a>
|
||||
<span> </span>
|
||||
<a @onclick="() => banTarget(2)" href="javascript:void(0)">2h</a>
|
||||
<span> </span>
|
||||
<a @onclick="() => banTarget(1 * 24)" href="javascript:void(0)">1d</a>
|
||||
<span> </span>
|
||||
<a @onclick="() => banTarget(7 * 24)" href="javascript:void(0)">1w</a>
|
||||
<span> </span>
|
||||
<a @onclick="() => banTarget(31 * 24)" href="javascript:void(0)">1m</a>
|
||||
<span> </span>
|
||||
<a @onclick="() => banTarget(365 * 24)" href="javascript:void(0)">1yr</a>
|
||||
<span> </span>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</Authorized>
|
||||
<NotAuthorized>
|
||||
|
@ -14,14 +57,82 @@
|
|||
|
||||
@code {
|
||||
|
||||
public string timetoBan { get; set; }
|
||||
public string reason { get; set; }
|
||||
|
||||
public UserData user { get; set; }
|
||||
public PostData post { get; set; }
|
||||
public CommentData comment { get; set; }
|
||||
|
||||
private async Task banTarget(int hours)
|
||||
{
|
||||
UserData ud = await UsersRepository.getUserByIdAsync(int.Parse(targetuserid));
|
||||
ud.TimeBanned = DateTimeOffset.Now.ToUnixTimeMilliseconds() + (hours * 3600000);
|
||||
if (reason == "")
|
||||
{
|
||||
reason = "not specified";
|
||||
}
|
||||
ud.BanReason = reason;
|
||||
await UsersRepository.updateUserAsync(ud);
|
||||
navManager.NavigateTo("/@board/", true, true);
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
if (!int.TryParse(targetid, out _) || !int.TryParse(targetuserid, out _))
|
||||
{
|
||||
navManager.NavigateTo("/sys/dead", true);
|
||||
return;
|
||||
}
|
||||
|
||||
var targeti = int.Parse(targetid);
|
||||
|
||||
var targetuseri = int.Parse(targetuserid);
|
||||
|
||||
var u = await UsersRepository.getUserByIdAsync(targetuseri);
|
||||
if (u == null)
|
||||
{
|
||||
navManager.NavigateTo("/sys/dead", true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetuseri != u.UserID)
|
||||
{
|
||||
navManager.NavigateTo("/sys/dead", true);
|
||||
return;
|
||||
}
|
||||
|
||||
user = u;
|
||||
|
||||
var isPost = type == "op";
|
||||
|
||||
if (isPost)
|
||||
{
|
||||
post = await PostsRepository.getPostByIdAsync(targeti);
|
||||
}
|
||||
else
|
||||
{
|
||||
comment = await CommentsRepository.getCommentByIdAsync(targeti);
|
||||
}
|
||||
await base.OnParametersSetAsync();
|
||||
}
|
||||
|
||||
[Parameter]
|
||||
[Required]
|
||||
public string targetuserid { get; set; }
|
||||
|
||||
[Parameter]
|
||||
[Required]
|
||||
public string threadid { get; set; }
|
||||
|
||||
[Parameter]
|
||||
[Required]
|
||||
public string type { get; set; }
|
||||
|
||||
[Parameter]
|
||||
[Required]
|
||||
public string board { get; set; }
|
||||
|
||||
[Parameter]
|
||||
[Required]
|
||||
public string targetid { get; set; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue