Fix bugs
This commit is contained in:
@@ -4,7 +4,8 @@
|
||||
"Bash(dotnet build)",
|
||||
"Bash(dotnet run:*)",
|
||||
"Bash(powershell:*)",
|
||||
"Bash(dotnet script:*)"
|
||||
"Bash(dotnet script:*)",
|
||||
"Bash(taskkill:*)"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page
|
||||
@page "{handler?}"
|
||||
@model Media.JoshHeaps.Net.Pages.IndexModel
|
||||
@{
|
||||
ViewData["Title"] = "Dashboard";
|
||||
@@ -47,7 +47,7 @@
|
||||
<label for="Description">Description (optional)</label>
|
||||
<textarea id="Description" name="Description" rows="3" placeholder="Add a description..."></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Upload</button>
|
||||
<button type="submit" class="btn btn-primary" asp-page-handler="Add">Upload</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -64,10 +64,10 @@
|
||||
}
|
||||
<div class="gallery-item-info">
|
||||
<span class="gallery-item-date">@media.CreatedAt.ToString("MMM d, yyyy")</span>
|
||||
<form method="post" asp-page-handler="Delete" style="display:inline;">
|
||||
<form method="post" style="display:inline;">
|
||||
@Html.AntiForgeryToken()
|
||||
<input type="hidden" name="mediaId" value="@media.Id" />
|
||||
<button type="submit" class="btn-delete" onclick="return confirm('Are you sure you want to delete this image?');">Delete</button>
|
||||
<input type="hidden" name="MediaId" value="@media.Id" />
|
||||
<button type="submit" class="btn-delete" onclick="return confirm('Are you sure you want to delete this image?');" asp-page-handler="Delete">Delete</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -17,6 +17,9 @@ namespace Media.JoshHeaps.Net.Pages
|
||||
[BindProperty]
|
||||
public string? Description { get; set; }
|
||||
|
||||
[BindProperty]
|
||||
public long? MediaId { get; set; }
|
||||
|
||||
public string? UploadMessage { get; set; }
|
||||
public bool UploadSuccess { get; set; }
|
||||
|
||||
@@ -39,6 +42,17 @@ namespace Media.JoshHeaps.Net.Pages
|
||||
RequireAuthentication();
|
||||
LoadUserSession();
|
||||
|
||||
Dashboard = await userService.GetUserDashboardAsync(UserId);
|
||||
MediaItems = await _mediaService.GetUserMediaAsync(UserId, 0, 20);
|
||||
|
||||
return Page();
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnPostAddAsync()
|
||||
{
|
||||
RequireAuthentication();
|
||||
LoadUserSession();
|
||||
|
||||
if (UploadedFile == null || UploadedFile.Length == 0)
|
||||
{
|
||||
UploadMessage = "Please select a file to upload.";
|
||||
@@ -69,19 +83,19 @@ namespace Media.JoshHeaps.Net.Pages
|
||||
}
|
||||
}
|
||||
|
||||
// Reload data
|
||||
Dashboard = await userService.GetUserDashboardAsync(UserId);
|
||||
MediaItems = await _mediaService.GetUserMediaAsync(UserId, 0, 20);
|
||||
|
||||
return Page();
|
||||
// Redirect to prevent form resubmission on refresh
|
||||
return RedirectToPage();
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnPostDeleteAsync(long mediaId)
|
||||
public async Task<IActionResult> OnPostDeleteAsync()
|
||||
{
|
||||
RequireAuthentication();
|
||||
LoadUserSession();
|
||||
|
||||
var success = await _mediaService.DeleteMediaAsync(mediaId, UserId);
|
||||
if (MediaId.HasValue)
|
||||
{
|
||||
var success = await _mediaService.DeleteMediaAsync(MediaId.Value, UserId);
|
||||
}
|
||||
|
||||
return RedirectToPage();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
@using Media.JoshHeaps.Net
|
||||
@using Media.JoshHeaps.Net.Pages
|
||||
@namespace Media.JoshHeaps.Net.Pages
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
@@ -89,7 +89,7 @@ function createGalleryItem(media) {
|
||||
|
||||
const form = document.createElement('form');
|
||||
form.method = 'post';
|
||||
form.action = '/?handler=Delete';
|
||||
form.action = '?handler=Delete'; // Relative to current page
|
||||
form.style.display = 'inline';
|
||||
|
||||
// Add anti-forgery token
|
||||
@@ -101,7 +101,7 @@ function createGalleryItem(media) {
|
||||
|
||||
const hiddenInput = document.createElement('input');
|
||||
hiddenInput.type = 'hidden';
|
||||
hiddenInput.name = 'mediaId';
|
||||
hiddenInput.name = 'MediaId'; // Match C# property name exactly
|
||||
hiddenInput.value = media.id;
|
||||
form.appendChild(hiddenInput);
|
||||
|
||||
@@ -110,7 +110,10 @@ function createGalleryItem(media) {
|
||||
deleteBtn.className = 'btn-delete';
|
||||
deleteBtn.textContent = 'Delete';
|
||||
deleteBtn.onclick = function(e) {
|
||||
return confirm('Are you sure you want to delete this image?');
|
||||
if (!confirm('Are you sure you want to delete this image?')) {
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
};
|
||||
form.appendChild(deleteBtn);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user