mirror of
https://github.com/miawinter98/just-short-it.git
synced 2024-11-22 08:19:54 +00:00
Added Inspect Page
This commit is contained in:
parent
f944ea4236
commit
89cce362f6
|
@ -5,6 +5,7 @@
|
|||
### Added
|
||||
|
||||
- Page Titles to Login, Logout and Urls Page
|
||||
- Added Inspect Page, which displays information about a URL and allows to delete it
|
||||
|
||||
## [1.1.0] - 2023-04-17
|
||||
|
||||
|
|
38
Pages/Inspect.cshtml
Normal file
38
Pages/Inspect.cshtml
Normal file
|
@ -0,0 +1,38 @@
|
|||
@page
|
||||
@using JustShortIt.Model
|
||||
@model JustShortIt.Pages.InspectModel
|
||||
@{
|
||||
ViewData["Title"] = "Inspect";
|
||||
}
|
||||
|
||||
<div class="columns is-centered is-multiline my-6 px-4">
|
||||
@if (Model.UrlRedirect is null) {
|
||||
@if (!string.IsNullOrEmpty(Model.Message)) {
|
||||
<div class="column is-half-desktop is-two-thirds-tablet is-full-mobile notification is-info">
|
||||
<button class="delete" onclick="this.parentElement.remove()"></button>
|
||||
@Html.Raw(Model.Message)
|
||||
</div>
|
||||
} else {
|
||||
<div class="column is-full has-text-centered">
|
||||
<h1 class="title is-2 has-text-danger">URL not found</h1>
|
||||
<h2 class="subtitle is-4">The given ID does not exist, it may have expired or been deleted.</h2>
|
||||
<a class="button is-primary is-medium" asp-page="Urls">Back to URLs</a>
|
||||
</div>
|
||||
}
|
||||
} else {
|
||||
<div class="column is-half-desktop is-two-thirds-tablet is-full-mobile">
|
||||
<dl class="">
|
||||
<dt>ID</dt>
|
||||
<dd>@Model.UrlRedirect.Id</dd>
|
||||
<dt>URL-Target</dt>
|
||||
<dd>@Model.UrlRedirect.Target</dd>
|
||||
</dl>
|
||||
|
||||
<form class="buttons" method="post">
|
||||
<input type="hidden" asp-for="Id" />
|
||||
<button type="submit" class="button is-danger">Delete</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
}
|
||||
</div>
|
46
Pages/Inspect.cshtml.cs
Normal file
46
Pages/Inspect.cshtml.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
using JustShortIt.Model;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
|
||||
namespace JustShortIt.Pages;
|
||||
|
||||
[Authorize]
|
||||
public class InspectModel : PageModel {
|
||||
[BindProperty(Name = "id", SupportsGet = true)]
|
||||
public string? Id { get; set; } = string.Empty;
|
||||
[BindProperty(Name="message")]
|
||||
public string? Message { get; set; }
|
||||
|
||||
public UrlRedirect? UrlRedirect { get; set; }
|
||||
|
||||
private IDistributedCache Db { get; }
|
||||
|
||||
public InspectModel(IDistributedCache db) {
|
||||
Db = db;
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnPostAsync() {
|
||||
if (Id == null) return await OnGet(null, $"Delete request without ID, aborted.");
|
||||
|
||||
await Db.RemoveAsync(Id);
|
||||
|
||||
return await OnGet(null, $"ID '{Id}' successfully deleted.");
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnGet(string? id, string? message) {
|
||||
if (id is null && message is null) return RedirectToPage("Urls");
|
||||
|
||||
Id = id;
|
||||
Message = message;
|
||||
|
||||
if (Id is not null) {
|
||||
string? url = await Db.GetStringAsync(Id);
|
||||
if (url is not null)
|
||||
UrlRedirect = new UrlRedirect(Id, url, string.Empty);
|
||||
}
|
||||
|
||||
return Page();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue