summaryrefslogtreecommitdiff
path: root/Pages/Gallery.razor
diff options
context:
space:
mode:
Diffstat (limited to 'Pages/Gallery.razor')
-rw-r--r--Pages/Gallery.razor52
1 files changed, 52 insertions, 0 deletions
diff --git a/Pages/Gallery.razor b/Pages/Gallery.razor
new file mode 100644
index 0000000..fb58ca0
--- /dev/null
+++ b/Pages/Gallery.razor
@@ -0,0 +1,52 @@
+@page "/"
+@page "/Gallery"
+@inject IDbContextFactory<HBContext> dbFactory
+@inject ISearchService searchService
+
+<PageTitle>@(Query is null ? "Gallery" : "Search Results")</PageTitle>
+
+<link rel="stylesheet" href="@(nameof(HyperBooru)).styles.css"/>
+
+<form id="upload" action="/media" method="post" enctype="multipart/form-data">
+ <input type="file" id="myFile" name="filename"/>
+ <input type="submit" />
+</form>
+
+@foreach(var media in Media) {
+ <a href="/ViewMedia?m=@(media.Guid)">
+ <img src="/media/thumb/@(media.Guid)?h=200" />
+ </a>
+}
+
+@code {
+ [Parameter]
+ [SupplyParameterFromQuery(Name = "q")]
+ public string? Query { get; set; }
+
+ [Parameter]
+ [SupplyParameterFromQuery]
+ public bool? Ingest { get; set; }
+
+ private Media[] Media;
+
+ protected override void OnParametersSet() => LoadMedia();
+
+ private void LoadMedia() {
+ using var db = dbFactory.CreateDbContext();
+
+ if(Ingest is not null && Ingest == true) {
+ Media = db.Media
+ .OrderByDescending(m => m.ObjectId)
+ .ToArray()
+ .Where(m => m.IsIngest)
+ .ToArray();
+ } else {
+ if(Query is null)
+ Media = db.Media
+ .OrderByDescending(m => m.ObjectId)
+ .ToArray();
+ else
+ Media = searchService.Search(Query);
+ }
+ }
+}