support new listbooru changes #2523
This commit is contained in:
@@ -523,10 +523,15 @@
|
||||
|
||||
Danbooru.Post.initialize_saved_searches = function() {
|
||||
$("#save-search").click(function() {
|
||||
var input = null;
|
||||
if (Danbooru.meta("enable-categorized-saved-searches") === "true") {
|
||||
input = window.prompt("Category for this saved search (optional):");
|
||||
}
|
||||
$.post(
|
||||
"/saved_searches.js",
|
||||
{
|
||||
"tags": $("#tags").attr("value")
|
||||
"tags": $("#tags").attr("value"),
|
||||
"category": input
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
@@ -237,6 +237,10 @@ class AnonymousUser
|
||||
false
|
||||
end
|
||||
|
||||
def enable_categorized_saved_searches?
|
||||
false
|
||||
end
|
||||
|
||||
%w(member banned gold builder platinum janitor moderator admin).each do |name|
|
||||
define_method("is_#{name}?") do
|
||||
false
|
||||
|
||||
@@ -3,24 +3,30 @@ class SavedSearch < ActiveRecord::Base
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
module ClassMethods
|
||||
def refresh_listbooru(user_id)
|
||||
def refresh_listbooru(user_id, name)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/users/#{user_id}")
|
||||
params = {
|
||||
:user_id => user_id,
|
||||
:name => name,
|
||||
:key => Danbooru.config.listbooru_auth_key
|
||||
}
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/users")
|
||||
uri.query = URI.encode_www_form(params)
|
||||
Net::HTTP.get_response(uri)
|
||||
end
|
||||
|
||||
def update_listbooru_on_create(user_id, query)
|
||||
def update_listbooru_on_create(user_id, name, query)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||
Net::HTTP.post_form(uri, {"user_id" => user_id, "query" => query, "key" => Danbooru.config.listbooru_auth_key})
|
||||
Net::HTTP.post_form(uri, {"user_id" => user_id, "name" => name.try(:downcase), "query" => query, "key" => Danbooru.config.listbooru_auth_key})
|
||||
end
|
||||
|
||||
def update_listbooru_on_destroy(user_id, query)
|
||||
def update_listbooru_on_destroy(user_id, name, query)
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||
Net::HTTP.start(uri.host, uri.port) do |http|
|
||||
req = Net::HTTP::Delete.new("/searches")
|
||||
req.set_form_data("user_id" => user_id, "query" => query, "key" => Danbooru.config.listbooru_auth_key)
|
||||
req.set_form_data("user_id" => user_id, "name" => name.try(:downcase), "query" => query, "key" => Danbooru.config.listbooru_auth_key)
|
||||
http.request(req)
|
||||
end
|
||||
end
|
||||
@@ -28,12 +34,12 @@ class SavedSearch < ActiveRecord::Base
|
||||
|
||||
def update_listbooru_on_create
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_create(user_id, tag_query)
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_create(user_id, category, tag_query)
|
||||
end
|
||||
|
||||
def update_listbooru_on_destroy
|
||||
return unless Danbooru.config.listbooru_auth_key
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_destroy(user_id, tag_query)
|
||||
SavedSearch.delay(:queue => "default").update_listbooru_on_destroy(user_id, category, tag_query)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -32,13 +32,14 @@ class User < ActiveRecord::Base
|
||||
has_saved_searches
|
||||
can_approve_posts
|
||||
can_upload_free
|
||||
enable_categorized_saved_searches
|
||||
)
|
||||
|
||||
include Danbooru::HasBitFlags
|
||||
has_bit_flags BOOLEAN_ATTRIBUTES, :field => "bit_prefs"
|
||||
|
||||
attr_accessor :password, :old_password
|
||||
attr_accessible :dmail_filter_attributes, :enable_privacy_mode, :enable_post_navigation, :new_post_navigation_layout, :password, :old_password, :password_confirmation, :password_hash, :email, :last_logged_in_at, :last_forum_read_at, :has_mail, :receive_email_notifications, :comment_threshold, :always_resize_images, :favorite_tags, :blacklisted_tags, :name, :ip_addr, :time_zone, :default_image_size, :enable_sequential_post_navigation, :per_page, :hide_deleted_posts, :style_usernames, :enable_auto_complete, :custom_style, :show_deleted_children, :as => [:moderator, :janitor, :gold, :member, :anonymous, :default, :builder, :admin]
|
||||
attr_accessible :dmail_filter_attributes, :enable_privacy_mode, :enable_post_navigation, :new_post_navigation_layout, :password, :old_password, :password_confirmation, :password_hash, :email, :last_logged_in_at, :last_forum_read_at, :has_mail, :receive_email_notifications, :comment_threshold, :always_resize_images, :favorite_tags, :blacklisted_tags, :name, :ip_addr, :time_zone, :default_image_size, :enable_sequential_post_navigation, :per_page, :hide_deleted_posts, :style_usernames, :enable_auto_complete, :custom_style, :show_deleted_children, :enable_categorized_saved_searches, :as => [:moderator, :janitor, :gold, :member, :anonymous, :default, :builder, :admin]
|
||||
attr_accessible :level, :as => :admin
|
||||
validates_length_of :name, :within => 2..100, :on => :create
|
||||
validates_format_of :name, :with => /\A[^\s:]+\Z/, :on => :create, :message => "cannot have whitespace or colons"
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
<meta name="style-usernames" content="<%= CurrentUser.user.style_usernames? %>">
|
||||
<meta name="mobile-mode" content="<%= CurrentUser.mobile_mode? %>">
|
||||
<meta name="last-forum-read-at" content="<%= CurrentUser.user.last_forum_read_at %>">
|
||||
<meta name="enable-categorized-saved-searches" content="<%= CurrentUser.enable_categorized_saved_searches? %>">
|
||||
<%= auto_discovery_link_tag :atom, posts_path(:format => "atom", :tags => params[:tags]) %>
|
||||
<%= stylesheet_link_tag "application", :media => "screen" %>
|
||||
<% if CurrentUser.user.custom_style.present? %>
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
<% if CurrentUser.user.show_saved_searches? %>
|
||||
|
||||
<% if CurrentUser.user.has_saved_searches? && saved_searches.tagged(params[:tags]) %>
|
||||
<%= button_to "Remove this saved search", saved_search_path(saved_searches.tagged(params[:tags]), :tags => params[:tags]), :remote => true, :method => :delete %>
|
||||
<% elsif CurrentUser.user.is_member? %>
|
||||
<%= button_tag "Save this search", :id => "save-search" %>
|
||||
<% end %>
|
||||
|
||||
<% end %>
|
||||
<% if CurrentUser.show_saved_searches? %>
|
||||
<%= button_tag "Save search", :id => "save-search" %>
|
||||
<% end %>
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
|
||||
<%= f.input :enable_auto_complete, :as => :select, :collection => [["Yes", "true"], ["No", "false"]], :include_blank => false %>
|
||||
|
||||
<%= f.input :enable_categorized_saved_searches, :as => :select, :collection => [["No", "false"], ["Yes", "true"]], :include_blank => false %>
|
||||
|
||||
<div class="input text optional field_with_hint">
|
||||
<label class="text optional" for="user_favorite_tags">Frequent tags</label>
|
||||
<textarea id="user_favorite_tags" class="text optional" rows="5" name="user[favorite_tags]" cols="40"><%= raw @user.favorite_tags %></textarea>
|
||||
|
||||
Reference in New Issue
Block a user