summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-28 00:39:00 +1000
committerJake Mannens <jake@asger.xyz>2025-08-20 00:48:42 +1000
commit0850585fb3507fbae3fe311633cc91b5a9334a00 (patch)
tree19716a6f250e2b29cad8f6e6b14ebf2ba5bcba50
parent4b3afdffb11cafde482fce1833a1a742b55605f4 (diff)
Namespaces are now broken down as tabs
-rw-r--r--Pages/TagDefinitions.razor80
1 files changed, 45 insertions, 35 deletions
diff --git a/Pages/TagDefinitions.razor b/Pages/TagDefinitions.razor
index 892ca8a..bd7394d 100644
--- a/Pages/TagDefinitions.razor
+++ b/Pages/TagDefinitions.razor
@@ -11,43 +11,47 @@
<button @onclick=@(() => createTagDialog.Show())>Create</button>
</div>
-<table id="tag-definitions" class="data-table">
- <tr>
- <th>Namespace</th>
- <th>Name</th>
- <th>Implicit Tags</th>
- <th></th>
- </tr>
- @foreach(var tagDef in tagDefinitions) {
- <tr data-guid="@tagDef.Guid">
- <td>@tagDef.Namespace</td>
- <td>@tagDef.Name</td>
- <td>
- <i>
- @(string.Join(", ", tagDef.ImplicitTags
- .Where(it => it.Source == TagSource.UserTag)
- .Select(it => it.Name)
- .Order()))
- </i>
- </td>
- <td>
- <a href="/Gallery?q=@tagDef.Name">Search</a>
- <a href="javascript:;" @onclick=@(() => PromptToEdit(tagDef))>Edit</a>
- <a href="javascript:;" @onclick=@(() => PromptToDelete(tagDef))>
- Delete
- </a>
- <a href="javascript:;" @onclick=@(() => PromptImplicitTags(tagDef))>
- Implicit Tags
- </a>
- @if(tagDef.ImplicitTags.Select(td => td.Guid).Contains(HBContext.NsfwTag)) {
- <a href="javascript:;" @onclick=@(() => SetNsfw(tagDef, false))>Make SFW</a>
- } else {
- <a href="javascript:;" @onclick=@(() => SetNsfw(tagDef, true))>Make NSFW</a>
+<TabContainer>
+ @foreach(var ns in tagNamespaces) {
+ <TabPane Title="@(ns ?? "Default")">
+ <table id="tag-definitions" class="data-table">
+ <tr>
+ <th>Name</th>
+ <th>Implicit Tags</th>
+ <th></th>
+ </tr>
+ @foreach(var tagDef in tagDefinitions.Where(td => td.Namespace == ns)) {
+ <tr data-guid="@tagDef.Guid">
+ <td>@tagDef.Name</td>
+ <td>
+ <i>
+ @(string.Join(", ", tagDef.ImplicitTags
+ .Where(it => it.Source == TagSource.UserTag)
+ .Select(it => it.Name)
+ .Order()))
+ </i>
+ </td>
+ <td>
+ <a href="/Gallery?q=@tagDef.Name">Search</a>
+ <a href="javascript:;" @onclick=@(() => PromptToEdit(tagDef))>Edit</a>
+ <a href="javascript:;" @onclick=@(() => PromptToDelete(tagDef))>
+ Delete
+ </a>
+ <a href="javascript:;" @onclick=@(() => PromptImplicitTags(tagDef))>
+ Implicit Tags
+ </a>
+ @if(tagDef.ImplicitTags.Select(td => td.Guid).Contains(HBContext.NsfwTag)) {
+ <a href="javascript:;" @onclick=@(() => SetNsfw(tagDef, false))>Make SFW</a>
+ } else {
+ <a href="javascript:;" @onclick=@(() => SetNsfw(tagDef, true))>Make NSFW</a>
+ }
+ </td>
+ </tr>
}
- </td>
- </tr>
+ </table>
+ </TabPane>
}
-</table>
+</TabContainer>
<Dialog Title="Create a new tag definition" @ref=createTagDialog>
<form @onsubmit=CreateTagDefinition>
@@ -112,6 +116,12 @@
.Contains(HBContext.NsfwTag))
.ToArray();
+ private string?[] tagNamespaces => tagDefinitions
+ .Select(td => td.Namespace)
+ .Order()
+ .Distinct()
+ .ToArray();
+
protected override void OnInitialized() =>
userService.ShowNsfwChanged += ShowNsfwChanged;