support new listbooru changes #2523
This commit is contained in:
@@ -523,10 +523,15 @@
|
|||||||
|
|
||||||
Danbooru.Post.initialize_saved_searches = function() {
|
Danbooru.Post.initialize_saved_searches = function() {
|
||||||
$("#save-search").click(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(
|
$.post(
|
||||||
"/saved_searches.js",
|
"/saved_searches.js",
|
||||||
{
|
{
|
||||||
"tags": $("#tags").attr("value")
|
"tags": $("#tags").attr("value"),
|
||||||
|
"category": input
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -237,6 +237,10 @@ class AnonymousUser
|
|||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def enable_categorized_saved_searches?
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
%w(member banned gold builder platinum janitor moderator admin).each do |name|
|
%w(member banned gold builder platinum janitor moderator admin).each do |name|
|
||||||
define_method("is_#{name}?") do
|
define_method("is_#{name}?") do
|
||||||
false
|
false
|
||||||
|
|||||||
@@ -3,24 +3,30 @@ class SavedSearch < ActiveRecord::Base
|
|||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
module ClassMethods
|
module ClassMethods
|
||||||
def refresh_listbooru(user_id)
|
def refresh_listbooru(user_id, name)
|
||||||
return unless Danbooru.config.listbooru_auth_key
|
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)
|
Net::HTTP.get_response(uri)
|
||||||
end
|
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
|
return unless Danbooru.config.listbooru_auth_key
|
||||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
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
|
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
|
return unless Danbooru.config.listbooru_auth_key
|
||||||
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
uri = URI.parse("#{Danbooru.config.listbooru_server}/searches")
|
||||||
Net::HTTP.start(uri.host, uri.port) do |http|
|
Net::HTTP.start(uri.host, uri.port) do |http|
|
||||||
req = Net::HTTP::Delete.new("/searches")
|
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)
|
http.request(req)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -28,12 +34,12 @@ class SavedSearch < ActiveRecord::Base
|
|||||||
|
|
||||||
def update_listbooru_on_create
|
def update_listbooru_on_create
|
||||||
return unless Danbooru.config.listbooru_auth_key
|
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
|
end
|
||||||
|
|
||||||
def update_listbooru_on_destroy
|
def update_listbooru_on_destroy
|
||||||
return unless Danbooru.config.listbooru_auth_key
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -32,13 +32,14 @@ class User < ActiveRecord::Base
|
|||||||
has_saved_searches
|
has_saved_searches
|
||||||
can_approve_posts
|
can_approve_posts
|
||||||
can_upload_free
|
can_upload_free
|
||||||
|
enable_categorized_saved_searches
|
||||||
)
|
)
|
||||||
|
|
||||||
include Danbooru::HasBitFlags
|
include Danbooru::HasBitFlags
|
||||||
has_bit_flags BOOLEAN_ATTRIBUTES, :field => "bit_prefs"
|
has_bit_flags BOOLEAN_ATTRIBUTES, :field => "bit_prefs"
|
||||||
|
|
||||||
attr_accessor :password, :old_password
|
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
|
attr_accessible :level, :as => :admin
|
||||||
validates_length_of :name, :within => 2..100, :on => :create
|
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"
|
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="style-usernames" content="<%= CurrentUser.user.style_usernames? %>">
|
||||||
<meta name="mobile-mode" content="<%= CurrentUser.mobile_mode? %>">
|
<meta name="mobile-mode" content="<%= CurrentUser.mobile_mode? %>">
|
||||||
<meta name="last-forum-read-at" content="<%= CurrentUser.user.last_forum_read_at %>">
|
<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]) %>
|
<%= auto_discovery_link_tag :atom, posts_path(:format => "atom", :tags => params[:tags]) %>
|
||||||
<%= stylesheet_link_tag "application", :media => "screen" %>
|
<%= stylesheet_link_tag "application", :media => "screen" %>
|
||||||
<% if CurrentUser.user.custom_style.present? %>
|
<% if CurrentUser.user.custom_style.present? %>
|
||||||
|
|||||||
@@ -1,9 +1,3 @@
|
|||||||
<% if CurrentUser.user.show_saved_searches? %>
|
<% if CurrentUser.show_saved_searches? %>
|
||||||
|
<%= button_tag "Save search", :id => "save-search" %>
|
||||||
<% 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 %>
|
<% end %>
|
||||||
@@ -68,6 +68,8 @@
|
|||||||
|
|
||||||
<%= f.input :enable_auto_complete, :as => :select, :collection => [["Yes", "true"], ["No", "false"]], :include_blank => false %>
|
<%= 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">
|
<div class="input text optional field_with_hint">
|
||||||
<label class="text optional" for="user_favorite_tags">Frequent tags</label>
|
<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>
|
<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