From 89794a7ef289dad2b9d281f9c327c176562b7bf3 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Tue, 24 Nov 2015 16:26:04 -0800 Subject: [PATCH] add saved search gallery link, can only view your own saved searches, normalize saved search categories --- app/logical/post_query_builder.rb | 12 +++--------- app/models/saved_search.rb | 1 + app/models/user.rb | 4 +--- .../saved_searches/_secondary_links.html.erb | 6 ++++++ app/views/saved_searches/edit.html.erb | 2 +- app/views/saved_searches/index.html.erb | 10 ++++++++-- script/fixes/039_fix_saved_search_categories.rb | 15 +++++++++++++++ 7 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 app/views/saved_searches/_secondary_links.html.erb create mode 100644 script/fixes/039_fix_saved_search_categories.rb diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index 9b345e1ef..da7b5148a 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -103,16 +103,10 @@ class PostQueryBuilder def add_saved_search_relation(saved_searches, relation) saved_searches.each do |saved_search| - if saved_search =~ /^(.+?):(.+)$/ - user_name = $1 - name = $2 - user = User.find_by_name(user_name) - return relation if user.nil? - post_ids = SavedSearch.post_ids(user.id, name) + if saved_search == "all" + post_ids = SavedSearch.post_ids(CurrentUser.id) else - user = User.find_by_name(saved_search) - return relation if user.nil? - post_ids = SavedSearch.post_ids(user.id, nil) + post_ids = SavedSearch.post_ids(CurrentUser.id, saved_search) end post_ids = [0] if post_ids.empty? diff --git a/app/models/saved_search.rb b/app/models/saved_search.rb index 61a2b2f45..4b0f9af32 100644 --- a/app/models/saved_search.rb +++ b/app/models/saved_search.rb @@ -109,6 +109,7 @@ class SavedSearch < ActiveRecord::Base end def normalize + self.category = category.strip.gsub(/\s+/, "_").downcase if category self.tag_query = SavedSearch.normalize(tag_query) end diff --git a/app/models/user.rb b/app/models/user.rb index 9e61f6dac..9883eda43 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -460,10 +460,8 @@ class User < ActiveRecord::Base def max_saved_searches if is_platinum? 1_000 - elsif is_gold? - 200 else - 100 + 250 end end diff --git a/app/views/saved_searches/_secondary_links.html.erb b/app/views/saved_searches/_secondary_links.html.erb new file mode 100644 index 000000000..8a6c57c64 --- /dev/null +++ b/app/views/saved_searches/_secondary_links.html.erb @@ -0,0 +1,6 @@ +<% content_for(:secondary_links) do %> + +
  • <%= link_to "Gallery", posts_path(:tags => "search:all") %>
  • +
  • <%= link_to "Listing", saved_searches_path %>
  • +
    +<% end %> diff --git a/app/views/saved_searches/edit.html.erb b/app/views/saved_searches/edit.html.erb index f59a03b9a..989a3861a 100644 --- a/app/views/saved_searches/edit.html.erb +++ b/app/views/saved_searches/edit.html.erb @@ -12,7 +12,7 @@ -<%= render "users/secondary_links" %> +<%= render "secondary_links" %> <% content_for(:page_title) do %> Edit Saved Search - <%= Danbooru.config.app_name %> diff --git a/app/views/saved_searches/index.html.erb b/app/views/saved_searches/index.html.erb index 48b04ae70..23e9c7ebb 100644 --- a/app/views/saved_searches/index.html.erb +++ b/app/views/saved_searches/index.html.erb @@ -3,7 +3,13 @@

    Saved Searches

    <% @categories.each do |category, saved_searches| %> -

    <%= category.present? ? category : "Uncategorized" %>

    +

    + <% if category.present? %> + <%= link_to category, posts_path(:tags => "search:#{category}") %> + <% else %> + Uncategorized + <% end %> +

    @@ -27,7 +33,7 @@ -<%= render "users/secondary_links" %> +<%= render "secondary_links" %> <% content_for(:page_title) do %> Saved Searches - <%= Danbooru.config.app_name %> diff --git a/script/fixes/039_fix_saved_search_categories.rb b/script/fixes/039_fix_saved_search_categories.rb new file mode 100644 index 000000000..b6bb38412 --- /dev/null +++ b/script/fixes/039_fix_saved_search_categories.rb @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby + +require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment')) + +ActiveRecord::Base.connection.execute("set statement_timeout = 0") + +CurrentUser.user = User.admins.first +CurrentUser.ip_addr = "127.0.0.1" + +SavedSearch.where("category is not null and category <> ''").find_each do |ss| + print ss.category + " -> " + ss.normalize + puts ss.category + ss.save +end