diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-08-22 23:55:38 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-08-23 02:02:08 +1000 |
| commit | 189688cd615e3e9734e4690eb39794c29cd24c21 (patch) | |
| tree | 001248c798ee36df5d887ccebfc516fbd740435e | |
| parent | 6cd1bd52992134e81e1b9bc57b90bd14a92ee56d (diff) | |
Fixed ingest toggle button
Gallery now filters out ingest media if now showing NSFW
| -rw-r--r-- | Controllers/MediaController.cs | 6 | ||||
| -rw-r--r-- | Media.cs | 4 | ||||
| -rw-r--r-- | Pages/Gallery.razor | 10 | ||||
| -rw-r--r-- | Pages/Upload.razor | 9 | ||||
| -rw-r--r-- | Pages/ViewMedia.razor | 4 | ||||
| -rw-r--r-- | Services/MediaService.cs | 4 |
6 files changed, 18 insertions, 19 deletions
diff --git a/Controllers/MediaController.cs b/Controllers/MediaController.cs index 3ccfc1d..b7c8314 100644 --- a/Controllers/MediaController.cs +++ b/Controllers/MediaController.cs @@ -28,10 +28,6 @@ public class MediaController : Controller { inspector = inspectorBuilder.Build(); } - [HttpGet("list")] - public IActionResult EnumerateMedia() => - Ok(db.Media.Select(m => m.ObjectId).ToArray()); - [HttpGet("{mediaId}")] public IActionResult Fetch([FromRoute] Guid mediaId) { var media = db.Media.First(m => m.Guid == mediaId); @@ -165,6 +161,6 @@ public class MediaController : Controller { db.SaveChanges(); transaction.Commit(); - return Ok(media.Guid); + return Redirect($"/ViewMedia?m={media.Guid}"); } }
\ No newline at end of file @@ -17,6 +17,10 @@ public class Media : HBObject { .Select(t => t.TagDefinition) .Any(td => td.Guid == HBContext.IngestTag); + public bool IsNsfw => Tags + .Select(t => t.TagDefinition) + .Any(td => td.Guid == HBContext.NsfwTag); + public string? DisplayName { get { if(ShortDescription is not null) diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor index b07c5e3..695f2f7 100644 --- a/Pages/Gallery.razor +++ b/Pages/Gallery.razor @@ -27,7 +27,7 @@ [Parameter] [SupplyParameterFromQuery] - public bool? Ingest { get; set; } + public bool Ingest { get; set; } = false; private Media[] Media; @@ -47,18 +47,16 @@ media = searchService.Search(Query) .OrderByDescending(m => m.ObjectId); - if(Ingest is not null && Ingest == true) { + if(Ingest) media = media .AsEnumerable() .Where(m => m.IsIngest); - } + // Filter both NSFW AND ingest images if we're not showing NSFW if(!userState.ShowNsfw) media = media .AsEnumerable() - .Where(m => !tagService.GetAllTags(m) - .Select(e => e.tagDefinition.Guid) - .Contains(HBContext.NsfwTag)); + .Where(m => !m.IsNsfw && !m.IsIngest); Media = media.ToArray(); } diff --git a/Pages/Upload.razor b/Pages/Upload.razor index c139aef..a9a1667 100644 --- a/Pages/Upload.razor +++ b/Pages/Upload.razor @@ -4,8 +4,7 @@ <div id="dropzone"> <p>Drag a file to upload it</p> - <input type="file" accept="image/*"/> -</div> - -@code { -}
\ No newline at end of file + <form id="upload" action="/media" method="post" enctype="multipart/form-data"> + <input type="file" id="myFile" name="filename" accept="image/*,video/*"/> + </form> +</div>
\ No newline at end of file diff --git a/Pages/ViewMedia.razor b/Pages/ViewMedia.razor index 68e6d70..fe73c7d 100644 --- a/Pages/ViewMedia.razor +++ b/Pages/ViewMedia.razor @@ -114,7 +114,6 @@ } private void AddTags(TagDefinition[] tagDefs) { - Console.WriteLine($"Adding tags: {string.Join(", ", tagDefs.Select(td => td.Name))}"); foreach(var tagDef in tagDefs) tagService.AddTag(media, tagDef); mediaTagTable.Refresh(); @@ -122,6 +121,9 @@ private void SetIngest(bool ingest) { mediaService.SetIngest(media, ingest); + // TODO: fix this hacky method of reloading the media entity + db.Entry(media).State = EntityState.Detached; + media = db.Media.First(m => m.Guid == media.Guid); StateHasChanged(); } diff --git a/Services/MediaService.cs b/Services/MediaService.cs index 953fd73..aa733c3 100644 --- a/Services/MediaService.cs +++ b/Services/MediaService.cs @@ -19,14 +19,14 @@ public class MediaService : IMediaService { public void SetIngest(Media media, bool ingest) { using var db = dbFactory.CreateDbContext(); + media = db.Media.First(m => m.Guid == media.Guid); var ingestTag = db.TagDefinitions .First(td => td.Guid == HBContext.IngestTag); if(ingest) media.Tags.Add(new(ingestTag)); else - media.Tags.Remove( - media.Tags.First(t => t.TagDefinition.Guid == ingestTag.Guid)); + media.Tags.RemoveAll(t => t.TagDefinition.Guid == ingestTag.Guid); db.SaveChanges(); } |
