diff options
| author | Jake Mannens <jake@asger.xyz> | 2025-08-17 22:10:27 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2025-08-18 10:59:28 +1000 |
| commit | 6c53f3dc43f072dce4ffe4a1bd306074dd20ff39 (patch) | |
| tree | 494335104504dca462a3837c3993e2add8e72bad /Pages/ViewMedia.cshtml | |
Initial commit
Diffstat (limited to 'Pages/ViewMedia.cshtml')
| -rw-r--r-- | Pages/ViewMedia.cshtml | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/Pages/ViewMedia.cshtml b/Pages/ViewMedia.cshtml new file mode 100644 index 0000000..967759b --- /dev/null +++ b/Pages/ViewMedia.cshtml @@ -0,0 +1,88 @@ +@page +@model HyperBooru.Pages.ViewMediaModel +@{ + ViewBag.ContentScroll = false; +} + +<link rel="stylesheet" type="text/css" href="@(nameof(HyperBooru)).styles.css"/> + +<script> + async function deleteMedia() { + var mediaId = new URL(window.location.href).searchParams.get('m'); + var resp = await fetch('/media/' + mediaId, { method: 'delete' }); + if(resp.ok) { + window.location.href = '/'; + } else { + alert('Failed to delete media object!'); + } + } + + function selectPane(tab) { + var tabs = Array.from(document.querySelectorAll('div#metadata-header > a')); + + var panes = Array.from(document.querySelectorAll('div#metadata > div')) + .filter(x => x.id != 'metadata-header'); + var pane = panes.filter(x => x.id == tab.dataset.pane)[0]; + + for(var t of tabs) { + if(t == tab) + t.classList.add('selected'); + else + t.classList.remove('selected'); + } + + for(var p of panes) { + if(p == pane) + p.classList.add('selected'); + else + p.classList.remove('selected'); + } + } +</script> + +<div id="content"> + <img src="/media/@(Model.Media.Guid)"/> + <div id="metadata"> + <div id="metadata-header"> + <a href="javascript:;" onclick="selectPane(this);" data-pane="metadata-fileinfo">File Info</a> + <a href="javascript:;" onclick="selectPane(this);" data-pane="metadata-tags" class="selected">Tags</a> + </div> +@* <form method="post"> + <label for="shortDescription">Short Description</label> + <input type="text" name="shortDescription" placeholder="@Model.Media.ShortDescription"/> + <label for="longDescription">Long Description</label> + <input type="text" name="longDescription" placeholder="@Model.Media.LongDescription"/> + <input type="submit" value="Update"/> + </form>*@ + <div id="metadata-fileinfo"> + <p>Upload history</p> + <hr /> + <table class="data-table"> + <tr> + <th>Created On</th> + <th>Last Write</th> + <th>Uploaded On</th> + <th>Filename</th> + <th>Original Checksum</th> + </tr> + @foreach(var file in Model.Media.UploadedFiles) { + <tr> + <td>@(file.CreateTime?.ToString() ?? "N/A")</td> + <td>@(file.LastWriteTime?.ToString() ?? "N/A")</td> + <td>@file.UploadTime</td> + <td>@file.Filename</td> + <td>@file.OriginalChecksum</td> + </tr> + } + </table> + </div> + <div id="metadata-tags" class="selected"> + <table class="data-table"> + <tr> + <th>Tag Name</th> + </tr> + </table> + <button>Add Tag</button> + </div> + </div> +</div>
\ No newline at end of file |
