Skip to content

Commit

Permalink
AI tags: Show suggested tags for members.
Browse files Browse the repository at this point in the history
They can't be automatically added nor selected for copy.
This is to hopefully reduce people blindly tagging things that don't apply.
  • Loading branch information
nottalulah committed Apr 5, 2024
1 parent c3287ad commit 1bafc43
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 24 deletions.
9 changes: 9 additions & 0 deletions app/javascript/src/styles/specific/related_tags.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,13 @@
input[type="checkbox"] { visibility: visible; }
}
}

ul.no-select {
margin-left: 1rem;

span > a {
cursor: default;
user-select: none;
}
}
}
2 changes: 1 addition & 1 deletion app/views/related_tags/_ai_tags.html.erb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<%= render "related_tags/tag_column", tags: related_tags&.ai_tags.to_a, class: "ai-tags-related-tags-column", title: "Suggested" %>
<%= render "related_tags/tag_column", tags: related_tags&.ai_tags.to_a, class: "ai-tags-related-tags-column", title: "Suggested", selectable: selectable %>
12 changes: 5 additions & 7 deletions app/views/related_tags/_container.html.erb
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
<div id="related-tags-container" class="related-tags fixed-width-container flex flex-col gap-2" data-media-asset-id="<%= media_asset.id %>">
<%= render "related_tags/related_tags", related_tags: nil, collapsed: true %>
<%= render "related_tags/translated_tags", source: nil %>
<% if policy(AITag).use_related_tags? %>
<%= render "related_tags/ai_tags", related_tags: nil %>
<% end %>
<%= render "related_tags/frequent_tags", related_tags: nil %>
<%= render "related_tags/recent_tags", related_tags: nil %>
<%= render "related_tags/related_tags", related_tags: nil, collapsed: true, selectable: true %>
<%= render "related_tags/translated_tags", source: nil, selectable: true %>
<%= render "related_tags/ai_tags", related_tags: nil, selectable: policy(AITag).use_related_tags? %>
<%= render "related_tags/frequent_tags", related_tags: nil, selectable: true %>
<%= render "related_tags/recent_tags", related_tags: nil, selectable: true %>
</div>
2 changes: 1 addition & 1 deletion app/views/related_tags/_frequent_tags.html.erb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<%= render "related_tags/tag_column", tags: related_tags&.favorite_tags.to_a, class: "frequent-related-tags-column", title: "Frequent" %>
<%= render "related_tags/tag_column", tags: related_tags&.favorite_tags.to_a, class: "frequent-related-tags-column", title: "Frequent", selectable: true %>
2 changes: 1 addition & 1 deletion app/views/related_tags/_recent_tags.html.erb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<%= render "related_tags/tag_column", tags: related_tags&.recent_tags.to_a, class: "recent-related-tags-column", title: "Recent" %>
<%= render "related_tags/tag_column", tags: related_tags&.recent_tags.to_a, class: "recent-related-tags-column", title: "Recent", selectable: true %>
6 changes: 3 additions & 3 deletions app/views/related_tags/_related_tags.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@
<% if related_tags.present? && related_tags.results_present? %>
<%= render(TabPanelComponent.new(classes: "related-tags-body button-group-tab-panel thin-scrollbar scrollbar-stable", tab_list_classes: "my-2", html: { "x-show": "!collapsed" }) do |t| %>
<% t.panel("All", active: true, classes: "ml-4 button-xs") do %>
<%= render "related_tags/tag_column", tags: related_tags.similar_tags, class: "all-related-tags-column", title: nil %>
<%= render "related_tags/tag_column", tags: related_tags.similar_tags, class: "all-related-tags-column", title: nil, selectable: true %>
<% end %>
<% related_tags.related_categories.reverse.each do |category| %>
<% t.panel(TagCategory.reverse_mapping[category].upcase_first.pluralize, classes: "button-xs") do %>
<%= render "related_tags/tag_column", tags: related_tags.frequent_tags(categories: [category]), title: nil %>
<%= render "related_tags/tag_column", tags: related_tags.frequent_tags(categories: [category]), title: nil, selectable: true %>
<% end %>
<% end %>
<% if related_tags.wiki_page_tags.present? %>
<% t.panel("Wiki", classes: "button-xs") do %>
<%= render "related_tags/tag_column", tags: related_tags.wiki_page_tags, class: "wiki-related-tags-column", title: nil %>
<%= render "related_tags/tag_column", tags: related_tags.wiki_page_tags, class: "wiki-related-tags-column", title: nil, selectable: true %>
<% end %>
<% end %>
<% end) %>
Expand Down
14 changes: 10 additions & 4 deletions app/views/related_tags/_tag_column.html.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<%# tags, title, class %>
<%# tags, title, class, selectable %>
<%= tag.div "x-data": { collapsed: false }.to_json, class: ["tag-column", ("card p-2 h-fit space-y-1" if title.present?), local_assigns[:class], ("hidden" if tags.blank?)] do %>
<% if tags.present? %>
Expand All @@ -11,15 +11,21 @@
</div>
<% end %>

<ul class="tag-list" x-cloak x-show="!collapsed">
<ul class="tag-list <%= !selectable ? 'no-select' : ''%>" x-cloak x-show="!collapsed">
<% tags.each do |t| %>
<li class="flex items-center gap-1 w-fit leading-none">
<input type="checkbox" tabindex="-1">
<% if selectable %>
<input type="checkbox" tabindex="-1">
<% end %>

<span>
<% if t.is_a?(AITag) %>
<% at = t.to_aliased_tag %>
<%= link_to at.pretty_name, posts_path(tags: at.name), class: "break-words #{tag_class(at)}", "data-tag-name": at.name %>
<% if selectable %>
<%= link_to at.pretty_name, posts_path(tags: at.name), class: "break-words #{tag_class(at)}", "data-tag-name": at.name %>
<% else %>
<%= link_to at.pretty_name, posts_path(tags: at.name), class: "break-words #{tag_class(at)}", "data-tag-name": "" %>
<% end %>
<%= tag.span "#{t.score}%", class: "text-muted text-xs" %>
<% else %>
<%= link_to t.pretty_name, posts_path(tags: t.name), class: "break-words #{tag_class(t)}", "data-tag-name": t.name %>
Expand Down
4 changes: 2 additions & 2 deletions app/views/related_tags/_translated_tags.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<% tags = source.artists.map(&:tag) %>
<% tags += [Tag.find_by_name("banned_artist")].compact if source.artists.any?(&:is_banned?) %>
<% tags += source.translated_tags %>
<%= render "related_tags/tag_column", tags: tags, class: "translated-tags-related-tags-column", title: "Translated" %>
<%= render "related_tags/tag_column", tags: tags, class: "translated-tags-related-tags-column", title: "Translated", selectable: true %>
<% else %>
<%= render "related_tags/tag_column", tags: [], class: "translated-tags-related-tags-column", title: "Translated" %>
<%= render "related_tags/tag_column", tags: [], class: "translated-tags-related-tags-column", title: "Translated", selectable: true %>
<% end %>
8 changes: 4 additions & 4 deletions app/views/related_tags/show.js.erb
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<% if params[:user_tags] %>
$(".ai-tags-related-tags-column").replaceWith("<%= j render "related_tags/ai_tags", related_tags: @query %>");
$(".recent-related-tags-column").replaceWith("<%= j render "related_tags/recent_tags", related_tags: @query %>");
$(".frequent-related-tags-column").replaceWith("<%= j render "related_tags/frequent_tags", related_tags: @query %>");
$(".ai-tags-related-tags-column").replaceWith("<%= j render "related_tags/ai_tags", related_tags: @query, selectable: policy(AITag).use_related_tags? %>");
$(".recent-related-tags-column").replaceWith("<%= j render "related_tags/recent_tags", related_tags: @query, selectable: true %>");
$(".frequent-related-tags-column").replaceWith("<%= j render "related_tags/frequent_tags", related_tags: @query, selectable: true %>");
<% else %>
$(".general-related-tags-column").replaceWith("<%= j render "related_tags/related_tags", related_tags: @query, collapsed: false %>");
$(".general-related-tags-column").replaceWith("<%= j render "related_tags/related_tags", related_tags: @query, collapsed: false, selectable: true %>");
<% end %>

Danbooru.RelatedTag.update_selected();
2 changes: 1 addition & 1 deletion app/views/sources/show.js.erb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
$(".source-data").replaceWith("<%= j render_source_data(@source) %>");

$(".translated-tags-related-tags-column").replaceWith("<%= j render "related_tags/translated_tags", source: @source %>");
$(".translated-tags-related-tags-column").replaceWith("<%= j render "related_tags/translated_tags", source: @source, selectable: true %>");
Danbooru.RelatedTag.update_selected();

if ($("#c-uploads #a-show").length) {
Expand Down

0 comments on commit 1bafc43

Please sign in to comment.