diff --git a/app/assets/javascripts/related_tag.js b/app/assets/javascripts/related_tag.js
index 8e299a295..620537857 100644
--- a/app/assets/javascripts/related_tag.js
+++ b/app/assets/javascripts/related_tag.js
@@ -105,13 +105,9 @@
var $dest = $("#related-tags");
$dest.empty();
- if (Danbooru.Cookie.get("recent_tags")) {
- $dest.append(Danbooru.RelatedTag.build_html("recent", Danbooru.RelatedTag.recent_tags()));
- }
- if (Danbooru.RelatedTag.favorite_tags().length) {
- $dest.append(Danbooru.RelatedTag.build_html("frequent", Danbooru.RelatedTag.favorite_tags()));
- }
- $dest.append(Danbooru.RelatedTag.build_html(query, related_tags));
+ $dest.append(this.build_html("recent", this.other_tags(Danbooru.Cookie.get("recent_tags"))));
+ $dest.append(this.build_html("frequent", this.other_tags(Danbooru.meta("favorite-tags"))));
+ $dest.append(this.build_html(query, related_tags));
if (wiki_page_tags.length) {
$dest.append(Danbooru.RelatedTag.build_html("wiki:" + query, wiki_page_tags));
}
@@ -138,22 +134,11 @@
}
}
- Danbooru.RelatedTag.favorite_tags = function() {
- var string = Danbooru.meta("favorite-tags");
- if (string) {
- return $.map(string.match(/\S+/g), function(x, i) {
- return [[x, 0]];
- });
- } else {
- return [];
- }
- }
-
- Danbooru.RelatedTag.recent_tags = function() {
- var string = Danbooru.Cookie.get("recent_tags");
+ Danbooru.RelatedTag.other_tags = function(string) {
if (string && string.length) {
- return $.map(string.match(/\S+/g), function(x, i) {
- return [[x, 0]];
+ return $.map(string.match(/\S+ \d+/g), function(x, i) {
+ var submatch = x.match(/(\S+) (\d+)/);
+ return [[submatch[1], submatch[2]]];
});
} else {
return [];
diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb
index 5ac7ba684..030b6a288 100644
--- a/app/controllers/posts_controller.rb
+++ b/app/controllers/posts_controller.rb
@@ -93,7 +93,7 @@ private
if @post
tags = Tag.scan_tags(@post.tag_string)
tags = TagAlias.to_aliased(tags) + Tag.scan_tags(cookies[:recent_tags])
- cookies[:recent_tags] = tags.uniq.slice(0, 40).join(" ")
+ cookies[:recent_tags] = Tag.categories_for(tags.uniq.slice(0, 30)).to_a.flatten.join(" ")
end
end
end
diff --git a/app/controllers/uploads_controller.rb b/app/controllers/uploads_controller.rb
index 6f9716922..5992db37f 100644
--- a/app/controllers/uploads_controller.rb
+++ b/app/controllers/uploads_controller.rb
@@ -54,7 +54,7 @@ protected
if @upload
tags = Tag.scan_tags(@upload.tag_string)
tags = TagAlias.to_aliased(tags) + Tag.scan_tags(cookies[:recent_tags])
- cookies[:recent_tags] = tags.uniq.slice(0, 40).join(" ")
+ cookies[:recent_tags] = Tag.categories_for(tags.uniq.slice(0, 30).join(" ")).to_a.flatten.join(" ")
end
end
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 4bc03021b..4f6f09de5 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -51,6 +51,7 @@ class UsersController < ApplicationController
check_privilege(@user)
sanitize_params!
@user.update_attributes(params[:user], :as => CurrentUser.role)
+ cookies.delete(:favorite_tags)
respond_with(@user)
end
diff --git a/app/logical/session_loader.rb b/app/logical/session_loader.rb
index c8d321ee8..c57196421 100644
--- a/app/logical/session_loader.rb
+++ b/app/logical/session_loader.rb
@@ -25,6 +25,7 @@ class SessionLoader
update_last_logged_in_at
set_time_zone
+ store_favorite_tags_in_cookies
set_statement_timeout
end
@@ -81,6 +82,12 @@ private
cookies[:password_hash] && cookies.signed[:user_name] && User.authenticate_cookie_hash(cookies.signed[:user_name], cookies[:password_hash])
end
+ def store_favorite_tags_in_cookies
+ if cookies[:favorite_tags].blank? && CurrentUser.user.favorite_tags.present?
+ cookies[:favorite_tags] = Tag.categories_for(CurrentUser.user.favorite_tags.scan(/\S+/)).to_a.flatten.join(" ")
+ end
+ end
+
def update_last_logged_in_at
return if CurrentUser.is_anonymous?
return if CurrentUser.last_logged_in_at && CurrentUser.last_logged_in_at > 1.week.ago
diff --git a/app/views/posts/show.html.erb b/app/views/posts/show.html.erb
index 11291031b..ccf2a3446 100644
--- a/app/views/posts/show.html.erb
+++ b/app/views/posts/show.html.erb
@@ -107,7 +107,7 @@
-
+
diff --git a/app/views/uploads/new.html.erb b/app/views/uploads/new.html.erb
index 00ca3fbb0..d6b04568f 100644
--- a/app/views/uploads/new.html.erb
+++ b/app/views/uploads/new.html.erb
@@ -90,7 +90,7 @@
<% end %>
<% content_for(:html_header) do %>
-
+
<% end %>
<%= render "posts/partials/common/secondary_links" %>