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 fd19324
Show file tree
Hide file tree
Showing 9 changed files with 35 additions and 22 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
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 fd19324

Please sign in to comment.