revamped artist reltags, fixes #1094

This commit is contained in:
albert
2013-03-25 22:13:27 -04:00
parent e88dfe4cc2
commit 78900c4d38
3 changed files with 38 additions and 75 deletions

View File

@@ -110,6 +110,18 @@
if (wiki_page_tags.length) { if (wiki_page_tags.length) {
$dest.append(Danbooru.RelatedTag.build_html("wiki:" + query, wiki_page_tags)); $dest.append(Danbooru.RelatedTag.build_html("wiki:" + query, wiki_page_tags));
} }
if (Danbooru.RelatedTag.recent_artists) {
var tags = [];
if (Danbooru.RelatedTag.recent_artists.length !== 1) {
tags.push([" none", 0]);
} else {
tags.push([Danbooru.RelatedTag.recent_artists[0].name, 1]);
$.each(Danbooru.RelatedTag.recent_artists[0].urls, function(i, url) {
tags.push([" " + url.url, 0]);
});
}
$dest.append(Danbooru.RelatedTag.build_html("artist", tags, true));
}
} }
Danbooru.RelatedTag.favorite_tags = function() { Danbooru.RelatedTag.favorite_tags = function() {
@@ -134,13 +146,17 @@
} }
} }
Danbooru.RelatedTag.build_html = function(query, related_tags) { Danbooru.RelatedTag.build_html = function(query, related_tags, is_wide_column) {
if (query === null || query === "") { if (query === null || query === "") {
return ""; return "";
} }
var current = $("#upload_tag_string,#post_tag_string").val().match(/\S+/g) || []; var current = $("#upload_tag_string,#post_tag_string").val().match(/\S+/g) || [];
var $div = $("<div/>").addClass("tag-column"); var $div = $("<div/>");
$div.addClass("tag-column")
if (is_wide_column) {
$div.addClass("wide-column");
}
var $ul = $("<ul/>"); var $ul = $("<ul/>");
$ul.append( $ul.append(
$("<li/>").append( $("<li/>").append(
@@ -151,17 +167,21 @@
); );
$.each(related_tags, function(i, tag) { $.each(related_tags, function(i, tag) {
var $link = $("<a/>"); if (tag[0][0] !== " ") {
$link.html(tag[0].replace(/_/g, " ")); var $link = $("<a/>");
$link.addClass("tag-type-" + tag[1]); $link.html(tag[0].replace(/_/g, " "));
$link.attr("href", "/posts?tags=" + encodeURIComponent(tag[0])); $link.addClass("tag-type-" + tag[1]);
$link.click(Danbooru.RelatedTag.toggle_tag); $link.attr("href", "/posts?tags=" + encodeURIComponent(tag[0]));
if ($.inArray(tag[0], current) > -1) { $link.click(Danbooru.RelatedTag.toggle_tag);
$link.addClass("selected"); if ($.inArray(tag[0], current) > -1) {
$link.addClass("selected");
}
$ul.append(
$("<li/>").append($link)
);
} else {
$ul.append($("<li/>").html(tag[0]));
} }
$ul.append(
$("<li/>").append($link)
);
}); });
$div.append($ul); $div.append($ul);
@@ -189,48 +209,14 @@
Danbooru.RelatedTag.find_artist = function(e) { Danbooru.RelatedTag.find_artist = function(e) {
$("#artist-tags").html("<em>Loading...</em>"); $("#artist-tags").html("<em>Loading...</em>");
Danbooru.RelatedTag.recent_search = null;
var url = $("#upload_source,#post_source"); var url = $("#upload_source,#post_source");
$.get("/artists.json", {"search[name]": url.val()}).success(Danbooru.RelatedTag.process_artist); $.get("/artists.json", {"limit": 2, "search[name]": url.val()}).success(Danbooru.RelatedTag.process_artist);
e.preventDefault(); e.preventDefault();
} }
Danbooru.RelatedTag.process_artist = function(data) { Danbooru.RelatedTag.process_artist = function(data) {
Danbooru.RelatedTag.recent_artist = data; Danbooru.RelatedTag.recent_artists = data;
$("#artist-tags-container").show(); Danbooru.RelatedTag.build_all();
var $dest = $("#artist-tags");
$dest.empty();
if (data.length != 1) {
$dest.html("No artists found");
return;
}
$.each(data, function(i, json) {
if (!json.other_names) {
json.other_names = "";
}
var $div = $("<div/>").addClass("tag-column").addClass("artist");
var $ul = $("<ul/>");
var $link = $("<a/>").attr("href", "/artists/" + json.id).html(json.name).click(Danbooru.RelatedTag.toggle_tag);
if (Danbooru.RelatedTag.tags_include(json.name)) {
$link.addClass("selected");
}
$ul.append(
$("<li/>").append("Artist: ").append(
$link
)
);
if (json.other_names.length > 0) {
$ul.append($("<li/>").html("Other names: " + json.other_names));
}
$.each(json.urls, function(i, v) {
$ul.append($("<li/>").html("URL: " + v.url));
});
$div.append($ul);
$dest.append($div);
});
} }
})(); })();

View File

@@ -1,6 +1,6 @@
@import "../common/000_vars.css.scss"; @import "../common/000_vars.css.scss";
div#related-tags-container, div#artist-tags-container { div#related-tags-container {
padding-right: 2em; padding-right: 2em;
h1 { h1 {
@@ -8,22 +8,6 @@ div#related-tags-container, div#artist-tags-container {
} }
} }
div#artist-tags {
overflow: auto;
width: 100%;
margin-bottom: 1em;
padding: 1em;
background: #EEE;
div.artist {
margin-bottom: 1em;
}
div.artist:last-child {
margin-bottom: 0;
}
}
div.related-tags { div.related-tags {
width: 100%; width: 100%;
margin-bottom: 1em; margin-bottom: 1em;
@@ -56,8 +40,7 @@ div.related-tags {
} }
} }
div.tag-column.artist { div.wide-column {
float: none; max-width: 45em;
max-width: 100%;
} }
} }

View File

@@ -74,12 +74,6 @@
<%= submit_tag "Submit" %> <%= submit_tag "Submit" %>
</div> </div>
<div id="artist-tags-container">
<h1>Artist</h1>
<div id="artist-tags" class="related-tags">
</div>
</div>
<div id="related-tags-container"> <div id="related-tags-container">
<h1>Related Tags</h1> <h1>Related Tags</h1>
<div id="related-tags" class="related-tags"> <div id="related-tags" class="related-tags">